android 系统架构简介
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以及其他一些对于移动嵌入式平台很重要的一些功能
android 系统架构简介的更多相关文章
- Android系统架构(一)
一.Android系统版本简介 Android操作系统已占据了手机操作系统的大半壁江山,截至本文写作时,Android操作系统系统版本及其详细信息,已发生了变化,具体信息见下表,当然也可以访问http ...
- Android系统架构说明介绍
Android系统架构说明介绍 Android系统架构和一些普遍的操作系统差不多,都是采用了分层的架构,从他们之间的架构图看,Android系统架构分为四个层,从高层到低层分别是应用程序层.应用程序框 ...
- LoadRunner系统架构简介
1.LoadRunner系统架构简介 LoadRunner是通过创建虚拟用户来代替真实实际用户来操作客户端软件比如Internet Explorer,来向IIS.Apache等Web服务器发送HTTP ...
- Android进阶(十一)Android系统架构讲解
如果说一个成功男人的背后会有一个默默支持的女人的话,那么一个优越稳定的平台背后必有一个成熟的系统架构所支撑着.那么,Android的系统架构是怎么样的呢?从下图我们可以从整体上有个大致的了解(图片来源 ...
- Android进阶加密-第1章-Android系统架构-读书笔记
第 1 章 Android 系统架构 1.1 Android 系统架构 Android 系统架构分为五层,从上到下依次是应用层.应用框架层.系统运行库层.硬件抽象层和 Linux 内核层. 应用层(S ...
- Android系统架构与系统源码目录
前言 技术博客终于可以恢复正常的更新速度了,原因是我编写的进阶书籍的初稿已经完成,窃以为它将会是Android应用书籍中最有深度的一本,可以说是<Android开发艺术探索>的姊妹篇.在这 ...
- Android源码分析一 Android系统架构
一 Android系统架构 Linux内核层(Linux Kernel):Android系统基于Linux2.6内核,这一层为Android设备各种硬件提供了底层驱动,如显示驱动.音频驱动.照相机驱动 ...
- 我收藏的技术知识图(每张都是大图)关于XX背后的知识、技术图,例如:Linux、Nginx架构、PHP知识卡、机会、HTML5移动、Android系统架构、YII架构的典型流程、Css知识表
我收藏的技术知识图(每张都是大图) HTML5Linux/Unix系统设计思想读书笔记 LinuxMVCJava线程MVCSpring MVCCSS3Nginx架构VimCliCommandsPHP知 ...
- (转)android系统架构及源码目录结构
转自:http://blog.csdn.net/finewind/article/details/46324507 1. Android系统架构: android系统架构采用了分层架构的思想,如下图所 ...
随机推荐
- OO面向对象 课程总结
测试与正确性论证的效果差差异 测试和正确性论证都是对程序进行可靠性的验证. 测试: IEEE提出了对软件测试的定义:使用人工或者自动的手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求 ...
- 转:HTML5中的element.dataset
使用HTML5中的 element.dataset 操作自定义 data-* 数据: 不久之前我向大家展示了非常有用的classList API,它是一种HTML5里提供的原生的对页面元素的CSS类进 ...
- 算法训练 Tricky and Clever Password
算法训练 Tricky and Clever Password 时间限制:2.0s 内存限制:256.0MB 问题描述 在年轻的时候,我们故事中的英雄——国王 Copa——他的私人 ...
- 1.2.1 Elevator
Elevator Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem De ...
- GET_DDL提取建表语句:ddl
创建对象的语句就是了 提取表 set line 200 pages 50000 wrap on long 999999 serveroutput on SQL> select dbms_meta ...
- caffe编译问题-nvcc fatal:Unsupported gpu architecture 'compute_20'
错误描述 nvcc fatal : Unsupported gpu architecture 'compute_20' Makefile:: recipe for target '.build_rel ...
- opencv-python教程学习系列2-读取/显示/保存图像
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像的读取.显示以及保存,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: ...
- Unity插件-ShareSDK使用指南
Unity插件ShareSDK使用教程 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Summariz ...
- (4)logging(日志模块)
日志分成几个常用的级别 debug 10 代表程序调试过程中的信息 info 20 代表普通日志信息,用户的访问等等 warning 30 警告日志,有可能出错,但是目前还没出错的 error 40 ...
- hdu2072 单词数 字典树
字典树裸题 #include<stdio.h> #include<string.h> ][]; ]; int cnt; int ans; void Insert(char *w ...