Android系统启动流程(二)解析Zygote进程启动过程
2023-09-11 14:20:27 时间
1.Zygote简介
在Android系统中,DVM(Dalvik虚拟机)、应用程序进程以及运行系统的关键服务的SystemServer进程都是由Zygote进程来创建的,我们也将它称为孵化器。它通过fock(复制进程)的形式来创建应用程序进程和SystemServer进程,由于Zygote进程在启动时会创建DVM,因此通过fock而创建的应用程序进程和SystemServer进程可以在内部获取一个DVM的实例拷贝。
关于init启动zygote我们在上一篇文章已经提到了,这里就不赘述了,这篇文章主要分析Android7.0 Zygote的启动流程。
2.AppRuntime分析
3.Zygote的Java框架层
上文我们通过JNI调用ZygoteInit的main函数后,Zygote便进入了Java框架层,此前没有任何代码进入过Java框架层,换句换说Zygote开创了Java框架层。
4.Zygote进程总结
Zygote启动流程就讲到这,Zygote进程共做了如下几件事:
1.创建AppRuntime并调用其start方法,启动Zygote进程。
2.创建DVM并为DVM注册JNI.
3.通过JNI调用ZygoteInit的main函数进入Zygote的Java框架层。
4.通过registerZygoteSocket函数创建服务端Socket,并通过runSelectLoop函数等待ActivityManagerService的请求来创建新的应用程序进程。
5.启动SystemServer进程。
相关文章
- Android系统自带的android.util.Base64的实现源码
- Android-多击事件处理
- Android 自定义View绘制的基本开发流程 Android自定义View(二)
- Android菜单详解(一)——理解android中的Menu
- 最新Android Kotlin开发指南,从入门到实战,一战通关
- Android开发的插件Code Generator与LayoutCreator的安装与使用,提升你的开发效率
- Android-ImageView的属性android:scaleType作用
- 《Android游戏开发详解》——第1章,第1.8节控制流程第2部分——while和for循环
- Android View体系(八)从源码解析View的layout和draw流程
- 在Android中显示GIF动画
- Android Paint、Canvas、Matrix使用讲解(一、Paint)
- Android开发之旅:android架构
- 【VLC-Android】Mac下编译vlc-android
- android圆角View实现及不同版本这间的兼容
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android中View绘制流程以及invalidate()等相关方法分析
- Android xml资源文件中@、@android:type、@*、?、@+含义和区别
- Android Activity.startActivity流程简介
- android源码学习- APP启动流程(android12源码)
- android源码学习-源码学习目录推荐
- Android Studio报错:Could not find method android() for arguments
- Android平台上使用MQTT协议实现消息推送功能
- Android 一步步实现曲线图、折线图、柱状图、雷达图,动态心跳图
- Android短彩信源码解析-短信发送流程(三)
- Android五大布局标签和属性总结
- Android开发基础(java)14
- Android 循环自动滚动广告