读书笔记:android设计与实现第二…
来源:互联网 发布:js替换所有特殊字符 编辑:程序博客网 时间:2024/05/27 02:32
启动:
android 正常模式启动流程:
1,系统加电:执行bootloader,负责初始化硬件,并最后加载内核到内存中,bootloader由硬件厂商提供
2,进入内核引导阶段(主要由汇编语言编写),之后调用start_kernel进入内核启动阶段(C语言编写),start_kernel最终启动用户空间的init程序。
3,init程序负责解析init.rc配置文件,开启系统守护进程,最重要的两个:zygote和servicemanager,前者是android启动的第一个dalvik虚拟机,负责启动java世界的进程,后者是binder通信的基础。
init的执行过程分为4个阶段:
1,初始化文件系统和日志系统,为之后的执行阶段做准备,主要是linux标准函数的调用
2,解析init.rc和init..rc初始化文件
解析init.rc后,生成 action和service链表
3,触发执行action 和 service
4,init循环监听处理事件
4,zygote虚拟机启动子进程system_server,在system_server中开启了android核心系统服务并将系统服务添加到Servicemanager,然后进入systemReady状态
5,systemready状态下,ActivityManagerService与zygote中的socket通信,通过zygote启动home应用,进入系统桌面。
底层只能看个大概,知道具体的步骤
下面是上层的启动实现:
zygote是android中一个非常重要的守护进程服务,其他的dalvik虚拟机进程都是通过zygote孵化出来的。App运行在各自独立的dalvik虚拟机中,如果每个应用程序在启动时都需要单独运行和初始化一个dalvik虚拟机会大大降低系统性能,因此android首先创建一个zygote虚拟机,然后通过它孵化出其他的虚拟机进程,进而共享虚拟机内存和框架层的资源,提高应用程序启动和运行速度
因为上层是用Java语言写的下层是c,虚拟机中需要注册jni函数,java环境通过这些函数调用C,在注册前,已经加载了所有的so库。
0 0
- 读书笔记:android设计与实现第二…
- 读书笔记:android设计与实现第一…
- 读书笔记:android设计与实现第三…
- 读书笔记:android设计与实现第四…
- Android的设计与实现--读书笔记
- 《Redis设计与实现》读书笔记
- 《Redis设计与实现》读书笔记
- Linux内核设计与实现读书笔记(1)
- Linux内核设计与实现读书笔记(2)
- 操作系统设计与实现(读书笔记1)
- 操作系统设计与实现(读书笔记2)
- 操作系统设计与实现(读书笔记3)
- 操作系统设计与实现(读书笔记4)
- 操作系统设计与实现(读书笔记5)
- 读书笔记--《LINUX内核设计与实现》
- 读书笔记--《LINUX内核设计与实现》(二)
- 读书笔记之《Linux内核设计与实现》
- 读书笔记之《Linux内核设计与实现》
- Fragment中的onCreateView方法什么…
- retrofit请求网络时,针对泛型解析…
- 读书笔记:android设计与实现第一…
- android 常见问题
- Android Studio 中JNI开发流程小结
- 读书笔记:android设计与实现第二…
- eclipse + jni +lame
- Aidl开发流程(android studio)
- 读书笔记:android设计与实现第三…
- Android parcelable序列化
- 读书笔记:android设计与实现第四…
- android设计与实现 收获
- ubuntu的virtualbox
- Android 优化布局: