android框架解密,导读

来源:互联网 发布:加工中心编程100例图 编辑:程序博客网 时间:2024/05/17 01:31
         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初始化的简单介绍。




























0 0