APP启动优化
1.系统启动
手机开机(打开电源),引导芯片会启动一个引导程序BootLoader,它负责把Linux系统拉起来,系统又会做很多的设置,比如目录的加载,网络的配置等等,其中它还会找一个init.rc文件。这个文件会启动一个init进程,这个进程的进程号是1,也是系统启动的第一个进程。这个进程又会启动一个孵化器(Zygote),这个孵化器的特点是生成一个和自己一样的进程,它还能创建JVM虚拟机,它孵化完成之后还会启动一个叫SysterServer的服务,还会打开一个Binder的线程池,还会开启一个SysterServiceManager。(Binder是进程之间通信的)
SysterServer和SysterServiceManager的合作可以开启很多服务,比如ActivityManagerService、WindowManagerService、PackageManagerService、CameraService、SensorService等等
通过ActivityManagerService会启动一个Launcher的进程,这个东西就可以理解为一个APP,也是我们平时看到的桌面。
2.LAUNCHER启动
首先Launcher是一个APP,可以通过命令“adb shell dumpsys activity activities”查看当前的activity
源码中是有一个叫Launcher.java的文件。路径大概是:...\android-6.0.1_r1\packages\apps\Launcher2\src\com\an