Android Framework(一)

android采用了分层的框架分为4层,分别是应用程序层,应用程序框架层,系统运行库层,Linux核心层

1、Linux内核

Android是基于Linux内核的系统平台,启动的时候,首先通过bootloder(系统加载器),加载Linux内核。在Linux启动的时候,与普通的Linux启动的过程相同,先初始化内核,然后调用init进程。

2、init

Android init进程对各种设备进行初始化,运行Android FrameWork所需的各种Daemon、ContextManager、Media ServerSocket、Zygote等。

以下是init进程执行的Daemon进程:

(1)USB Daemon(usbd):管理USB连接

(2)Android Debug Bridge Daemon(adbd):Android Debug Bridge连接管理

(3)Debugger Daemon(debuggerd):启动Debugger 系统

(4)Radio Interface Layer Daemon(rild):管理无线通信连接

3、Context Manager

Context Manager  是一个管理androd系统服务的重要进程。系统服务是组成Android Framework的重要组件,提供从相机、音频、视频处理到各种应用程序制作所需要的重要的API。

Context Manager提供运行于Android内的各种系统服务信息,应用程序或Framework内部模块在调用系统的服务时,需要先向服务管理器申请,然后通过Binder IPC(Interprocess communication)调用系统服务。

在系统启动的时候,Android 所有系统服务都要把各自的handle信息注册到Context Manager,此时,Binder IPC用来进行进程间的通信。

4、Media Server

Media Server用于运行基于C/C++的本地系统服务,如Audio Flinger(负责音频输出)、Camera等。

5、Zygote

Zygote进程用来缩短Android应用程序加载的时间,每当执行Java应用程序的时候,Zygote就会派生出一个子进程来执行应用程序,该子进程就是用来执行Java应用程序的虚拟机。

6、System Server

System Server是Android系统的一核心进程,他是由zygoge进程创建的,在Android启动的过程中位于Zygoge之后,在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++、汇编语言)编写的应用程序和库进行交互操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值