android框架学习一android启动过程
android主要源代码组成:
Kernel:android Linux内核2.6
bionic:android标准C运行支持库
bootloader:android内核加载器参考
build:android的Bulid系统
cts:android兼容性测试源
dalvik:Dalvik虚拟机
external:android使用的开源
frameworks:android框架
hardware:android HAL(Hardware Abstraction Layer,硬件抽象层)库源
packages:包含android基本应用,Content Provider等
system:android初始化进程,蓝牙工具集等
android启动过程:
1.Linux内核:
android启动时,首先通过bootloader(系统加载器),加载Linux内核。
2.init
android init进程对各种设备进行初始化,运行android framework所需用的各种Daemon、Context Manager、Media Server、Zygote等。
Daemon进程:
USB Daemon(usbd):管理USB连接
android Debug Bridge Daemon(adbd):android Debug Bridge连接管理
Debugger Daemon(debugger):启动Debugger系统
Radio Interface Layer Daemon(rild):管理无限通信
3.Context Manager
Context Manager是一个管理android系统服务的重要进程。系统服务是组成android Farmework 的重要组件,提供相机、音频、相机处理到各种应用程序制作所需要的重要API。Context Manager提供运行于android内的各种系统服务消息。应用程序或者Framework内部模块在调用系统服务时,需要先向服务管理申请,然后通过Binder IPC(Interprocess commuication)调用系统服务。在系统启动时,android所有系统服务都要各自的Handle信息注册到Context Manager,此时,Binder IPC用来进行进程间的通信。
4.Media Server
Media Server用于运行基于C/C++的本地系统服务,如Audio Flinfer(负责音频输出)、Camera等。
5.Zyogte
Zygote进程用于缩短android应用程序加载的时间,每当执行Java应用能程序时,Zygote就会派生一个子进程来执行应用程序,该子进程就是用来执行Java应用程序的虚拟机。
6.System Server
System Server是android系统的一个核心进程,它是由Zygote进程创建的,在android启动过程中位于Zygote之后。在System Server中可以看到它建立的android中的大部分服务,如Activity Manager Service(管理应用程序的生命周期)、Location Manager Service(提供终端的地理位置信息)等。将运载在System Server中的Java系统服务提供给android应用程序或者Framework内部模块调用,需要先将它们注册到Context Manager中。在通过Binder IPC将Java系统服务注册到C语言的服务管理器时,需要使用JNI(Java Native Interface)本地编程接口。JNI允许Java代码与其他编程语言(如C、C++、汇编语言)编写的应用程序和库进行交互操作。
更多相关文章
- Android:theme
- Android系统自带样式Android:theme
- android自带样式 theme
- Android系统自带样式(android:theme)(转)
- Android系统自带样式(android:theme)详解
- Android(安卓)系统自带样式Android:theme
- Android(安卓)theme
- Android系统自带样式(android:theme)
- Android系统自带样式(android:theme)