进程概念:系统进行资源分配和调度的独立单元。一个程序之前有一个进程,一个进程之前有一个线程。进程类似一个车间,里面有很多流水线线程。
多进程优点:可以为应用争取更多资源。一个进程崩溃,不至于整个应用挂掉。
缺点:让应用变更重,更耗电,数据共享困难。在应用初始化时Application多次创建(应通过判断当前应用id防止)
多进程实现:在四大组件注册时加上android:process=":{key}",加:表示是当前应用的私有进程,其他进程不能通过shareUid跟他跑在同一进程中共享数据,不加则可以。
1. Activity间的通信
广播
接口回调
观察者模式
第三方 rxbus、eventbus
2. 线程间的通信
1) thread + handler
2) AsyncTask
3) runOnUiThread
4) View 和 handle的post方法
3. 进程(不同应用)间的通信
1) 广播
ps:出于安全考虑,发送广播的时候要设置权限,注册了该权限的接收器 才能接收到广播
2) Intent
通过intent设定相应的action即可打开对应activity
3) Content pridiver
用观察者模式,通过Cursor共享数据,通讯录
4) AIDL
远程接口
5) Binder
???
4. 进程线程区别
1个程序至少拥有一个进程,1个进程由多个线程组成,至少拥有1个线程
进程拥有独立的内存,而多个线程共享内存
线程必须依存与应用程序中
线程意义在于一个应用程序可以由多个线程同时运行,对进程进行资源调度分配