Android(安卓)启动过程
16lz
2021-01-26
1.Boot系统初始化,(system/core/init/Init.c)中的main(),这时候手机或者模拟器出现console,显示“ANDROID”
2.初始化成功后,就开始mounting系统,具体参见system/core/mountd/Mountd.c中的main()
3.接下来运行androidRuntime,并开始启动java虚拟机dalvikvm
4.Java虚拟机启动成功后,开始初始化。系统初始化的第一步是用JNI方式实现的,对应java类为
frameworks/base/services/java/com/android/server/SystemServer.java中的init1(Native)函数,对应的JNI C++代码为
frameworks/base/cmds/system_server/library/System_init.cpp中的system_init()
5.system_init调用SurfaceFlinger,SurfaceFlinger的readyToRun()用BootAnimation来实现开机动画,
这时候手机或者模拟器显示是一副背景图加一个动态小机器人
6.系统初始化的第二步,将启动ServerThead进程,参见SystemServer.init2()
ServerThread将启动各种系统服务,如Power Manager,Activity Manager等等,具体参见ServerThread的run(),ServerThread同在SystemServer.java中
更多相关文章
- Android(安卓)CircularFloatingActionMenu:作为系统级按钮悬浮桌
- spring mvc dubbo ios android整合cms内容发布平台
- Android(安卓)为【apk】文件签名,增加修改系统时间等权限
- Android拍照流程
- spring mvc + mybatis 构建 cms 内容发布系统 ios android
- 9、四大组件之四-Broadcast Receiver
- android系统属性获取及设置
- Input子系统框架之InputDispatcher
- Android(安卓)8.0系统以后你该这样启动Service