极力推荐文章:欢迎收藏Android 干货分享
本篇文章主要介绍 Android Zygote 启动分析 知识点,通过阅读本篇文章,您将收获以下内容:
一、 Android 系统基本服务
Zygote
服务时通过 init.rc
进程启动的,Zygote
的 classname
为main
.init.rc
文件配置代码如下:
... ...
on nonencrypted
class_start main
class_start late_start
on property:sys.init_log_level=*
loglevel ${sys.init_log_level}
... ...
详细可以参考 init.rc
启动分析。
一、 Android 系统基本服务
Android 系统包含netd
、servicemanager
、surfaceflinge
、zygote
、media
、installd
、bootanimation
等基本服务,具体作用请看下图。
Android 系统基本服务
二、虚拟机创建和第一个Java 程序引导
为了让APK
在不同的虚拟机都可以运行,Google
采取了适配器模式,在让虚拟机运行之前先执行 dexopt
,即将dex
文件优化成odex
文件,可以让虚拟机更加优化的执行。
在ART
虚拟机中,dexopt
将dex
文件优化成二进制格式的问题,从而可以让ART
虚拟机执行。dexopt
会调用dex2oat
进行优化,dex2oat
的任务是将原来的dex
文件进行预翻译