和你一起终身学习,这里是程序员Android
经典好文推荐,通过阅读本文,您将收获以下知识点:
Android
系统包含netd
、servicemanager
、surfaceflinger
、zygote
、media
、installd
、bootanimation
等基本服务,具体作用请看下图。
Android 系统基本服务
二、虚拟机创建和第一个Java 程序引导
为了让APK
在不同的虚拟机都可以运行,Google
采取了适配器模式,在让虚拟机运行之前先执行 dexopt
,即将dex
文件优化成odex
文件,可以让虚拟机更加优化的执行。
在ART
虚拟机中,dexopt
将dex
文件优化成二进制格式的问题,从而可以让ART
虚拟机执行。dexopt
会调用dex2oat
进行优化,dex2oat
的任务是将原来的dex
文件进行预翻译,从而可以加快app
运行的时间,但是由于某些app
比较复杂,所以优化的时间就比较长。
优化是以dex
文件中的Method
方法为单位,dex2oat
在优化时候,会根据需求优化一定量的Method
,即不是所有的Method
都回翻译成oat
模式。
虚拟机创建和第一个Java 程序引导
三、Dalvik 虚拟机基本配置
在Android
系统中,Dalvik
虚拟机 和ART
、应用程序进程,以及运行系统的关键服务SystemServer
进程都是由 Zygote
进程创建孵化的。
1.Dalvik 虚拟机基本配置
Dalvik 虚拟机基本配置
四、Zygote 启动流程
1.Zygote 启动代码
Zygote
服务时通过 init.rc
进程启动的,Zygote