android 系统架构简介
2015-06-15 16:26
567 查看
Android系统采取的是分层的架构,根据官方文档提供的架构图,我们将android的系统架构分成5层,如图:
1.Application Framework (应用框架)
application framework 是应用开发者使用最多的部分,作为一个应用开发者,我们大部分情况下都是在跟它打交道,
当然对于硬件开发者来说,要想更好的编写驱动程序,需要意识到developer api应尽可能地直接映射到硬件抽象层(HAL)接口上。
2.Binder IPC (绑定进程间通信)
绑定进程间通信机制允许应用框架(application framework)直接跨越进程边界去调用android的系统服务代码,也就是说,高级别的framework apis能够跟android的系统服务直接进行交互,当然这一切的通信对于开发者来说都是不可见的,我们只知道它在运行
3. System services (系统服务)
我们平时调用的应用框架的很多api都是通过跟系统服务进行交互来访问底层的硬件的。
这些基于android系统服务都是模块化的,聚焦在组件上,例如窗口管理器(window manager)、搜索服务(search Service)、通知管理器(Notification Manager).
在android系统中包含两组服务,一组是系统服务,例如窗口管理器和通知管理器,
另一组是媒体服务,用来调用播放和录制多媒体。
4. Hardware abstraction layer (HAL 硬件抽象层)
Android的硬件抽像层是能以封闭源码形式提供硬件驱动模块。HAL的目的是为了把Android framework与Linux kernel隔开,让Android不至过度依赖Linux kernel,以达成“内核独立”(kernel independent)的概念,也让Android framework的开发能在不考量驱动程序实作的前提下进行发展。
HAL stub是一种代理人的概念,stub是以*.so档的形式存在。Stub向HAL“提供”操作函数,并由Android runtime向HAL获取stub的操作,再回调这些操作函数。HAL里包含了许多的stub(代理人)。Runtime只要说明“类型”,即module ID,就可以获取操作函数。
5. Linux Kernel (Linux 内核)
android 的底层是基于linux内核的,当然在在这个版本中新增了诸如wake locks,binder ipc driver以及其他一些对于移动嵌入式平台很重要的一些功能
1.Application Framework (应用框架)
application framework 是应用开发者使用最多的部分,作为一个应用开发者,我们大部分情况下都是在跟它打交道,
当然对于硬件开发者来说,要想更好的编写驱动程序,需要意识到developer api应尽可能地直接映射到硬件抽象层(HAL)接口上。
2.Binder IPC (绑定进程间通信)
绑定进程间通信机制允许应用框架(application framework)直接跨越进程边界去调用android的系统服务代码,也就是说,高级别的framework apis能够跟android的系统服务直接进行交互,当然这一切的通信对于开发者来说都是不可见的,我们只知道它在运行
3. System services (系统服务)
我们平时调用的应用框架的很多api都是通过跟系统服务进行交互来访问底层的硬件的。
这些基于android系统服务都是模块化的,聚焦在组件上,例如窗口管理器(window manager)、搜索服务(search Service)、通知管理器(Notification Manager).
在android系统中包含两组服务,一组是系统服务,例如窗口管理器和通知管理器,
另一组是媒体服务,用来调用播放和录制多媒体。
4. Hardware abstraction layer (HAL 硬件抽象层)
Android的硬件抽像层是能以封闭源码形式提供硬件驱动模块。HAL的目的是为了把Android framework与Linux kernel隔开,让Android不至过度依赖Linux kernel,以达成“内核独立”(kernel independent)的概念,也让Android framework的开发能在不考量驱动程序实作的前提下进行发展。
HAL stub是一种代理人的概念,stub是以*.so档的形式存在。Stub向HAL“提供”操作函数,并由Android runtime向HAL获取stub的操作,再回调这些操作函数。HAL里包含了许多的stub(代理人)。Runtime只要说明“类型”,即module ID,就可以获取操作函数。
5. Linux Kernel (Linux 内核)
android 的底层是基于linux内核的,当然在在这个版本中新增了诸如wake locks,binder ipc driver以及其他一些对于移动嵌入式平台很重要的一些功能
相关文章推荐
- 【Java安全技术探索之路系列:Java可扩展安全架构】之四:JCA(三):JCA编程模型
- 关于使用QQ、新浪微博、腾讯微博等第三方登录网站的开发过程(一)
- Java Web 架构 需要解决的几个问题
- 项目代码架构
- 【Java 安全技术探索之路系列:J2SE安全架构】之四:字节码验证器
- 【Java 安全技术探索之路系列:J2SE安全架构】之三:访问控制器
- 【Java安全技术探索之路系列:Java可扩展安全架构】之三:JCA(二):JCA类和接口
- 【Java安全技术探索之路系列:Java可扩展安全架构】之二:JCA(一):JCA架构介绍
- WIN7 IIS7.5web部署.NET项目遇到的问题
- IIS日志-网站运维的好帮手
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- Drupal 网站突然出现PDOException错误
- 网站WEB文档本地读取组件
- 如何发布自己的网站
- How-to: install puppet via yum
- 网站访客手机号码、qq 号码哪家捕获率高
- Android很详细的将开源库分类列出的网站
- CDNPlus的作用和架构
- 企业应用通用架构图
- Android系统架构分析 和 Android应用程序组件介绍