关于android系统架构中的HAL层
2016-11-12 19:13
288 查看
HAL(hardware abstraction layer) 硬件抽象层
HAL层主要是为规避GPL【开源协议】而设计的,它将将硬件驱动分成内核空间和用户空间两部分,其中用户空间两部分采用的是商业友好的Apache License。
应用程序框架层主要包括系统服务,例如组件管理服务、应用程序安装服务、窗口管理服务、多媒体服务和电信服务等。
应用程序框架进一步又分为C/C++和Java两个层次,Java代码运行Dalvik虚拟机之上,并且通过JNI方法和C/C++交互。
应用程序层主要就是由四大组件Activity、Service、Broadcast Receiver和Content Provider构成,它们是应用开发的基础。
在Android系统中,提供了独特的匿名共享内存子系统Ashmem(Anonymous Shared Memory)
Apache许可证(Apache
License),是一个在Apache软件基金会发布的自由软件许可证,最初为
Apache
标志
Apache http服务器而撰写。Apache许可证要求被授权者保留版权和放弃权利的申明,但它不是一个反版权的许可证。
GPL(GNU通用公共许可证)
GPL,是General Public License的缩写,是一份GNU通用公共授权非正式的中文翻译。它并非由自由软件基金会所发表,亦非使用GNU通用公共授权的软件的法定发布条款─直有GNU通用公共授权英文原文的版本始具有此等效力。
设备驱动分为内核空间和用户空间,内核空间负责硬件访问逻辑(GPL),用户空间负责参数和访问流程控制(apache license)
用户空间部分设备驱动即为HAL Module,HAL Module通过设备文件访问内核空间部分设备驱动
系统服务通过HAL Module对硬件进行管理,系统服务通过JNI访问Module。
应用程序通过系统服务队硬件进行访问,通过binder ipc访问系统服务。
相关文章推荐
- 我收藏的技术知识图(每张都是大图)关于XX背后的知识、技术图,例如:Linux、Nginx架构、PHP知识卡、机会、HTML5移动、Android系统架构、YII架构的典型流程、Css知识表
- 关于ebs文件系统的架构
- 今日随想——关于企业级应用中分布式架构设计中系统通讯问题
- Android Sensor传感器系统架构初探
- 关于大型asp.net应用系统的架构-架构的选择
- 关于大型asp.net应用系统的架构-架构的选择
- 关于系统架构
- Google工程师解析Android系统架构
- Android系统架构
- Android系统架构基本模式解析
- Google工程师解析Android系统架构
- android系统架构[转]
- 关于系统架构中的分层
- 【转】Android系统架构
- Android系统架构分析
- 一些关于系统架构实现的胡言乱语
- 0907期《程序员》架构栏目文章《关于大规模系统缓存设计的一些考虑(上)》示例代码
- Android面试之----Android系统架构图及简单的系统架构介绍
- 关于大型asp.net应用系统的架构-架构的选择
- 【多图】Google工程师解析Android系统架构