在android系统源代码情景分析一书的试读中,主要是讲述Android系统的硬件
抽象层(Hardware Abstract Layer,HAL)。它的实现和使用依次涉及Android系统的硬件驱动模块、硬件抽象层、外部库和运行时库层、应用程序框架层和应用程序层等。
Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(UserSpace),一层放在内核空间(KernelSpace),其中,硬件抽象层运行在用户空间,而Linux内核驱动程序运行在内核空间。为什么要这样安排呢?把硬件抽象层和内核驱动整合在一起放在内核空间不可行吗?从技术实现的角度来看,是可以的,然而从商业的角度来看,把对硬件的支持逻辑都放在内核空间,可能会损害厂家的利益。我们知道,Linux内核源代码版权遵循GNULicense,而Android源代码版权遵循ApacheLicense,前者在发布产品时,必须公布源代码,而后者无须发布源代码。如果把对硬件支持的所有代码都放在Linux驱动层,那就意味着发布时要公开驱动程序的源代码,而公开源代码就意味着把硬件的相关参数和实现都公开了,在手机市场竞争激烈的今天,这对厂家来说,损害是非常大的。因此,Android才会想到把对硬件的支持分成硬件抽象层和内核驱动层,内核驱动层只提供简单的访问硬件逻辑,例如读写硬件寄存器的通道,至于从硬件中读到了什么值或者写了什么值到硬件中的逻辑,都放在硬件抽象层中去了,这样就可以把商业秘密隐藏起来了。也正是由于这个分层的原因,Android被踢出了Linux内核主线代码树中。大家想想,Android放在内核空间的驱动程序对硬件的支持是不完整的,把Linux内核移植到别的机器上去时,由于缺乏硬件抽象层的支持,硬件就完全不能用了,这也是为什么说Android是开放系统而不是开源系统的原因
知道了android系统的体系结构,能让我们更好的去学习它,手机客户端软件,面向服务是软件将是未来的趋势,所以学习android是很有必要的。
发表评论
-
大型分布式网站架构设计与实践
2014-10-17 09:32 8301.大型网站软件系统的特点? a.高并发,大流量。 b.高可用 ... -
产品经理是这样炼成的
2014-10-16 12:02 544产品经理(Product Manager),又称品 ... -
NFC:Arduino、Android与PhoneGap近场通信
2014-10-15 12:53 1453射频识别,RFID(Radio Frequency I ... -
Java特种兵
2014-10-15 09:29 920从事java工作多年,很多东西只知道知其然不知其所以然 ... -
微管理——给你一个技术团队,你该怎么管
2014-06-26 18:54 1354首先,要明白项目 ... -
海量运维、运营规划之道(全彩)
2014-04-23 11:55 735关于海量运维、运 ... -
全程软件测试(第2版)
2014-04-22 14:20 1270软件测试(英语:software testing),描述 ... -
3D打印:三维智能数字化创造(全彩)
2014-04-21 22:58 1052刚刚看完《互联网思维》这本书,书里面简单介绍了3D打印技术 ... -
ADD的人生整理术
2014-03-14 11:34 946什么是ADD? ADD,英 ... -
专注力:化繁为简的惊人力量
2014-03-14 11:01 1100你有没有这样的同事,他们花了你80%的时间却只给了你不到2 ... -
如何高效的学习
2014-03-11 09:12 654我想对于这个话题每个人有自己的见解,因每个人的习惯,生活方 ... -
SDN核心技术剖析和实战指南
2013-12-09 09:38 1333软件定义网络(Software Defined Ne ... -
智慧的分析洞察
2013-12-04 09:11 733看到这本书的题目让我想到这应该是以本哲学之类的书籍 ... -
做自己
2013-11-22 11:28 4481:每天11:00点前睡觉,每天7:30点前起床; 2:每 ... -
云计算360度
2013-06-27 10:23 929什么是云计算? 我看了很多资料,还是没有弄清楚什么是云 ... -
Web应用安全威胁与防治
2013-01-24 17:31 1780本书的试读章节让我们知道了会话劫持的危害性,对身份验证和会话 ... -
项目中的.NET
2012-11-08 16:34 961当我看到这一本书的时候,我迫不及待我想拿来读。当我打开试 ... -
看敏捷高手交互卓越软件
2012-08-16 15:25 925有效个人管理的四个步骤 ——确定角色:确定你认为重 ... -
Node.js开发指南
2012-08-13 14:45 4693看到Node.js这个名字,初学者可能会误以 ... -
神一样的产品经理
2012-07-30 15:41 1006既然有产品经理,那么产品究竟是什么? ...
相关推荐
Android系统源代码情景分析 第3版
Android系统源代码情景分析 01 Android系统源代码情景分析 01 Android系统源代码情景分析 01 Android系统源代码情景分析 01 Android系统源代码情景分析 01 Android系统源代码情景分析 01 Android系统源代码情景分析 ...
Android系统源代码情景分析 一书加强版书签,用于书籍中内容概览与快速定位, 使用 PDFPatcher.exe 合成到书籍 PDF 即可
Android系统源代码情景分析 Android系统源代码情景分析 Android系统源代码情景分析 Android系统源代码情景分析 Android系统源代码情景分析 Android系统源代码情景分析
Android系统源码情景分析pdf 1.源码驱动开发技巧 2.Android 源码查看技巧 3.Android高级技术学习
ndroid系统源代码情景分析的评论 这本书是我看过的最深入的一本android书了,可以看出作者是一个很有悟性的程序员,很适合需要提高的android框架层工程师进阶。binder部分是目前所有书中分析的最全面的。匿名共享...
罗升阳Android系统源代码情景分析(第三版)程序文件。
Android系统源代码情景分析光盘资料 目录 第1篇初识Android系统 第1章 准备知识................................................................ 2 1.1 Linux内核参考书籍......................................
在内容上,《Android系统源代码情景分析(含CD光盘1张)》结合使用情景,全面、深入、细致地分析了Android系统的源代码,涉及到Linux内核层、硬件抽象层(HAL)、运行时库层(Runtime)、应用程序框架层...
《Android系统源代码情景分析》随书光盘内容(源代码) 目录如下: 第1篇 初识Android系统 第1章 准备知识 1.1 Linux内核参考书籍 1.2 Android应用程序参考书籍 1.3 下载、编译和运行Android源代码 ...
Android系统源代码情景分析-源码
Android系统源代码情景分析在内容上,本书结合使用情景,全面、深入、细致地分析Android系统的源代码,涉及到Linux内核层、硬件抽象层(HAL)、运行时库层(Runtime)、应用程序框架层(ApplicationFramework)以及应用...
Android系统源代码情景分析 Android系统源代码情景分析 Android系统源代码情景分析 Android系统源代码情景分析 Android系统源代码情景分析
Android系统源代码情景分析一书的光盘-源码,
在内容上,本书结合使用情景,全面、深入、细致地分析Android系统的源代码,涉及到Linux内核层、硬件抽象层(HAL)、运行时库层(Runtime)、应用程序框架层(Application Framework)以及应用程序层(Application)。...
android系统源代码情景分析光盘里的内容,自己买的书中带的光盘,分享给大家
《Android系统源代码情景分析》随书光盘内容(源代码) 目录如下: 第1篇 初识Android系统 第1章 准备知识 1.1 Linux内核参考书籍 1.2 Android应用程序参考书籍 1.3 下载、编译和运行Android源代码 1.3.1 下载...
Android系统源代码情景分析的评论 这本书是我看过的最深入的一本android书了,可以看出作者是一个很有悟性的程序员,很适合需要提高的android框架层工程师进阶。binder部分是目前所有书中分析的最全面的。匿名共享...
=========================================== chapter-1 chapter-2 chapter-3 chapter-4 chapter-5 chapter-6 chapter-7 chapter-8 chapter-9 chapter-10 chapter-11 chapter-12 chapter-13 ...emulator
《Android系统源代码情景分析》一书的光盘内容(有序列图)