线程
多线程的4种方式
- Handler+Thread
- AsyncTask
- ThreadPoolExecutor
- IntentService
线程分类
- 守护线程, 例:时钟处理线程、idle线程、垃圾回收线程、屏幕更新线程等
- 非守护线程(用户线程)
必须等所有的Non-daemon线程都运行结束了,只剩下daemon的时候,JVM才会停下来,注意Main主程序是Non-daemon线程,默认产生的线程全部是Non-daemon线程。
线程优先级
线程优先级分为10个级别,分别用Thread类常量表示
进程
多进程之间通信方式
- AIDL:功能强大,支持进程间一对多的实时并发通信,并可实现 RPC (远程过程调用)。
- Messenger:支持一对多的串行实时通信, AIDL 的简化版本。
- Bundle:四大组件的进程通信方式,只能传输 Bundle 支持的数据类型。
- ContentProvider:强大的数据源访问支持,主要支持 CRUD 操作,一对多的进程间数据共享,例如我们的应用访问系统的通讯录数据。
- BroadcastReceiver:即广播,但只能单向通信,接收者只能被动的接收消息。
- 文件共享:在非高并发情况下共享简单的数据。
- Socket:通过网络传输数据。
refrence
[Android 多进程通信] https://www.jianshu.com/p/84a12977dc26
[Android多线程的四种方式] https://www.jianshu.com/p/2b634a7c49ec
[Android多线程:你必须要了解的多线程基础知识汇总] https://cloud.tencent.com/developer/article/1424838
Android 中的进程
Android 中包含 native 进程和 java进程。
1、nativie 进程:采用C/C++ 实现,不包含dalvik实例的进程。/system/bin/目录下面的程序文件运行后都是以native进程形式存在的。
2、java进程:Android中运行与dalvik 虚拟机之上的进程。
dalvik虚拟机的宿主进程由fork()系统调用创建,所以每一个java进程都是存在于一个native进程中,因此,java进程的内存分配比native进程复杂,因为进程中存在一个虚拟机实例。
native 进程 和 java进程如何通信?









网友评论