您的位置:首页 > 移动开发 > Android开发

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初始化的简单介绍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: