android框架解密,导读
2016-12-14 14:11
267 查看
android源码结构
本书分析android的启动过程,从linux内核加载到Home应用程序启动的整个过程,来理解android framework层运行原理。
android启动过程如上:
对上述启动过程中的部分进行简介:
(1)启动时,首先通过bootloader加载linux内核,与普通linux启动过程相同,先初始化内核,然后调用init进程。
(2)init进程启动,对各种设备进行初始化,运行android framework所需的各种 Daemon, Context Manager, Media Server, Zygote等。以下是init进程执行的Daemon进程:USB Daemon, Android Debug Bridge Daemon,Debugger Daemon, Redio Interface Layer
Deamon(管理无线通信连接)
(3)Context Manager, 用于管理android系统服务的重要进程。系统服务是android framework的重要组件,提供从相机,音频,视频的处理到各种应用程序所需要的API。
Context Manager提供运行于android内的各种系统服务信息。应用程序或Framework内部模块在调用系统服务时,需要先向服务管理器申请,然后通过Binder IPC调用系统服务。
系统服务启动时,android所有系统服务都要把各自的handler信息注册到Context Manager,此时,Binder IPC用来进行进程间的通信。
(4)media server用于运行基于C/C++的本地系统服务
(5)Zygote进程用于缩短android应用程序加载的时间,每当执行java应用程序时,Zygote就会派生出一个子进程来执行应用程序,该子进程就是用来执行java应用程序的虚拟机。
(6)System Server android系统的核心进程,由Zygote进程创建,在Zygote之后启动。在System Server中可看到它建立的android中的大部分服务。为了将运行在System Server中的java系统服务提供给android应用程序或framework内部模块调用,需要先将他们注册到ContextManager中。
在通过Binder IPC将java系统服务注册到基于C语言的服务管理器时,需要使用JNI本地编程接口。
以上就是启动过程以及framework初始化的简单介绍。
本书分析android的启动过程,从linux内核加载到Home应用程序启动的整个过程,来理解android framework层运行原理。
android启动过程如上:
对上述启动过程中的部分进行简介:
(1)启动时,首先通过bootloader加载linux内核,与普通linux启动过程相同,先初始化内核,然后调用init进程。
(2)init进程启动,对各种设备进行初始化,运行android framework所需的各种 Daemon, Context Manager, Media Server, Zygote等。以下是init进程执行的Daemon进程:USB Daemon, Android Debug Bridge Daemon,Debugger Daemon, Redio Interface Layer
Deamon(管理无线通信连接)
(3)Context Manager, 用于管理android系统服务的重要进程。系统服务是android framework的重要组件,提供从相机,音频,视频的处理到各种应用程序所需要的API。
Context Manager提供运行于android内的各种系统服务信息。应用程序或Framework内部模块在调用系统服务时,需要先向服务管理器申请,然后通过Binder IPC调用系统服务。
系统服务启动时,android所有系统服务都要把各自的handler信息注册到Context Manager,此时,Binder IPC用来进行进程间的通信。
(4)media server用于运行基于C/C++的本地系统服务
(5)Zygote进程用于缩短android应用程序加载的时间,每当执行java应用程序时,Zygote就会派生出一个子进程来执行应用程序,该子进程就是用来执行java应用程序的虚拟机。
(6)System Server android系统的核心进程,由Zygote进程创建,在Zygote之后启动。在System Server中可看到它建立的android中的大部分服务。为了将运行在System Server中的java系统服务提供给android应用程序或framework内部模块调用,需要先将他们注册到ContextManager中。
在通过Binder IPC将java系统服务注册到基于C语言的服务管理器时,需要使用JNI本地编程接口。
以上就是启动过程以及framework初始化的简单介绍。
相关文章推荐
- Android SDK Document 框架导读的翻译和注解[1]
- 【android】android中使用commons-codec框架处理各种加密解密
- Android SDK Document 框架导读的翻译和注解[3]
- Android SDK Document 框架导读的翻译和注解[4]——Broadcast receiver
- Android SDK Document 框架导读的翻译和注解[5]——Content provider
- Android框架解密
- Android SDK Document 框架导读的翻译和注解[6]——Activating components: intents【用Intent激活组件】
- Android SDK Document 框架导读的翻译和注解[2]
- Android SDK Document 框架导读的翻译和注解[7]——Intents and Intent Filters
- Android游戏开发:游戏框架的搭建(4)
- Android ContentProvider启动流程完全解密
- Android Retrofit框架的使用和个人见解
- Android 插件补丁框架 ZeusPlugin 原理解析
- Android 快速开发系列 ORMLite 框架最佳实践
- 【Android】Fresco图片加载框架(一)————源码简要分析
- 精品教程---Android应用程序框架
- Android 6.0 运行时权限封装框架
- Android实用框架(三)
- Android数据库加解密逆向分析(二)--Line数据库解密
- Android多媒体框架初步分析