android 中的线程与进程
本文系统梳理 Android 中的进程与线程模型。每个 App 在安装后都会被分配一个独立的 Linux 用户,默认情况下运行在由 Zygote 进程 fork 出来的独立进程中,并且只有一条主线程,界面的绘制全部在这条线程上完成,这正是许多应用界面丢帧卡顿的根本原因,为此官方提供了多线程与多进程的编程支持。文章依次讲解了进程与虚拟机实例的对应关系、四大组件如何通过 process 属性指定各自运行的进程、基于 Binder 机制的进程间通信方式,以及系统在回收内存时按重要性划分的前台、可见、服务、后台与空进程这五级优先级,还讨论了任务与进程之间的关系,以及在实际开发中采用多进程时需要注意的那些问题。