掌握 Android 系统架构,看这一篇就够了!( 四 )


链接地址:http://gityuan.com/2016/02/01/android-booting/
Android系统中极其重要进程:init, zygote, system_server, servicemanager 进程:
序号进程启动概述1init进程Linux系统中用户空间的第一个进程, Init.main2zygote进程所有App进程的父进程, ZygoteInit.main3system_server进程(上篇)系统各大服务的载体, forkSystemServer过程4system_server进程(下篇)系统各大服务的载体, SystemServer.main5servicemanager进程binder服务的大管家, 守护进程循环运行在binder_loop6App进程通过Process.start启动App进程, ActivityThread.main
再来看看守护进程(也就是进程名一般以d为后缀,比如logd,此处d是指daemon的简称), 下面介绍部分守护进程:

  • debuggerd
  • installd
  • lmkd
  • logd
4.2 系统稳定性系列
Android系统稳定性主要是异常崩溃(crash)和执行超时(timeout):
链接地址:http://gityuan.com/2016/06/19/stability_summary/
序号文章名概述1理解Android ANR的触发原理触发ANR的场景以及机理2Input系统—ANR原理分析input触发ANR的原理3理解Android ANR的信息收集过程AMS.appNotResponding过程分析,收集traces4解读Java进程的Trace文件kill -3 信息收集过程5Native进程之Trace原理debuggerd -b 信息收集过程6WatchDog工作原理WatchDog触发机制7理解Java Crash处理流程AMS.handleApplicationCrash过程分析8理解Native Crash处理流程debuggerd守护进程9global reference限制策略global reference
4.3 Android进程系列
进程/线程是操作系统的魂,各种服务、组件、子系统都是依附于具体的进程实体 。深入理解进程机制对于掌握Android系统整体架构和运转机制是非常有必要的,是系统工程师的基本功,下面列举进程相关的文章:
序号文章名概述1理解Android进程创建流程Process.start过程分析2理解杀进程的实现原理Process.killProcess过程分析3Android四大组件与进程启动的关系AMS.startProcessLocked过程分析组件与进程4Android进程绝杀技--forceStopforce-stop过程分析彻底移除组件与杀进程5理解Android线程创建流程3种不同线程的创建过程6彻底理解Android Binder通信架构以start-service为线,阐述进程间通信机理7理解Binder线程池的管理Zygote fork的进程都默认开启binder线程池8Android进程生命周期与ADJ进程adj, processState以及lmk9Android LowMemoryKiller原理分析lmk原理分析10进程优先级进程nice,thread priority以及scheduler11Android进程调度之adj算法updateOomAdjLocked过程12Android进程整理整理系统的所有进程/线程
4.4 四大组件系列
对于App来说,Android应用的四大组件Activity,Service,Broadcast Receiver,Content Provider最为核心,接下分别展开介绍:
序号文章名类别1startActivity启动过程分析Activity2简述Activity生命周期Activity3startService启动过程分析Service4bindService启动过程分析Service5以Binder视角来看Service启动Service6Android Broadcast广播机制分析Broadcast7理解ContentProvider原理ContentProvider8ContentProvider引用计数ContentProvider9Activity与Service生命周期Activity&&Service10简述Activity与Window关系Activity&&Window11四大组件之综述AMS12四大组件之ServiceRecordService13四大组件之BroadcastRecordBroadcast14四大组件之ContentProviderRecordContentProvider15理解Android ContextContext16理解Application创建过程Application17unbindService流程分析Service18四大组件之ActivityRecordActivity19AMS总结(一)AMS
4.5 图形系统系列
图形也是整个系统非常复杂且重要的一个系列,涉及WindowManager,SurfaceFlinger服务 。
序号文章名类别1WindowManager启动篇(http://gityuan.com/2017/01/08/windowmanger/)Window2WMS之启动窗口篇(http://gityuan.com/2017/01/15/wms_starting_window/)Window3以Window视角来看startActivity(http://gityuan.com/2017/01/22/start-activity-wms/)Window4Android图形系统概述(http://gityuan.com/2017/02/05/graphic_arch/)SurfaceFlinger5SurfaceFlinger启动篇(http://gityuan.com/2017/02/11/surface_flinger/)SurfaceFlinger6SurfaceFlinger绘图篇(http://gityuan.com/2017/02/18/surface_flinger_2/)SurfaceFlinger7Choreographer原理(http://gityuan.com/2017/02/25/choreographer/)Choreographer
4.6 系统服务篇
再则就是在整个架构中有大量的服务,都是基于Binder来交互的,Android系统服务的注册过程也是在此之上的构建的 。计划针对部分核心服务来重点分析: