Android技术内幕:系统卷(《程序员》杂志“2011年度十大最具技术影响力图书”)
基本信息
- 原书名:Android Internals: System
编辑推荐
完全立足于Android系统源代码,深入解析Android内核的架构设计与实现原理
透彻分析Android内核层、硬件抽象层和系统运行库层的各功能模块的底层机制
推荐阅读
内容简介回到顶部↑
书籍
计算机书籍
《Android技术内幕:系统卷》是国内首本系统对Android的源代码进行深入分析的著作。全书将Android系统从构架上依次分为应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层等5个层次,旨在通过对Android系统源代码的全面分析来帮助开发者加深对Android系统架构设计和实现原理的认识,从而帮助他们解决开发中遇到的更加复杂的问题。
全书分为两卷,系统卷主要分析了Linux内核层、硬件抽象层和系统运行库层的各个模块的底层原理和实现细节;应用卷主要分析了应用层和应用框架层的各个模块的底层原理和实现细节。
具体而言,系统卷第1章首先从宏观上介绍了Android系统的架构以及各个层次之间的关系,然后介绍了如何获取Android源代码并搭建Android源代码开发环境和阅读环境的方法;第2章有针对性地剖析了Android的内核机制和结构,以及Android对Linux内核的改动和增强;第3章分析了Binder的架构和工作机制,以及Binder驱动的实现原理;第4章分析了Android电源管理模块的机制与实现;第5章全面地剖析了Android硬件设备驱动(显示、视频、音频、MTD、Event、蓝牙、WLAN等)的工作原理和实现,掌握这部分内容即可修改和编写基于Android的设备驱动程序;第6章深刻阐述了Android原生库的原理及实现,涉及系统C库、功能库、扩展库和原生的Server等重要内容;第7章系统地讲解了硬件抽象层的原理与实现,掌握这部分内容即可编写适合特定硬件设备驱动的抽象层接口;第8章和第9章是对系统运行库层的分析,主要讲解了Dalvik虚拟机的架构、原理与实现,以及Android的核心库相关的知识,掌握这部分内容即可完成对Android运行库的移植和修改。
本书适合所有的高级Android应用开发工程师、Android系统开发工程师、Android移植工程师、Android系统架构师和所有对Android源码实现感兴趣的读者。
计算机书籍
《Android技术内幕:系统卷》是国内首本系统对Android的源代码进行深入分析的著作。全书将Android系统从构架上依次分为应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层等5个层次,旨在通过对Android系统源代码的全面分析来帮助开发者加深对Android系统架构设计和实现原理的认识,从而帮助他们解决开发中遇到的更加复杂的问题。
全书分为两卷,系统卷主要分析了Linux内核层、硬件抽象层和系统运行库层的各个模块的底层原理和实现细节;应用卷主要分析了应用层和应用框架层的各个模块的底层原理和实现细节。
具体而言,系统卷第1章首先从宏观上介绍了Android系统的架构以及各个层次之间的关系,然后介绍了如何获取Android源代码并搭建Android源代码开发环境和阅读环境的方法;第2章有针对性地剖析了Android的内核机制和结构,以及Android对Linux内核的改动和增强;第3章分析了Binder的架构和工作机制,以及Binder驱动的实现原理;第4章分析了Android电源管理模块的机制与实现;第5章全面地剖析了Android硬件设备驱动(显示、视频、音频、MTD、Event、蓝牙、WLAN等)的工作原理和实现,掌握这部分内容即可修改和编写基于Android的设备驱动程序;第6章深刻阐述了Android原生库的原理及实现,涉及系统C库、功能库、扩展库和原生的Server等重要内容;第7章系统地讲解了硬件抽象层的原理与实现,掌握这部分内容即可编写适合特定硬件设备驱动的抽象层接口;第8章和第9章是对系统运行库层的分析,主要讲解了Dalvik虚拟机的架构、原理与实现,以及Android的核心库相关的知识,掌握这部分内容即可完成对Android运行库的移植和修改。
本书适合所有的高级Android应用开发工程师、Android系统开发工程师、Android移植工程师、Android系统架构师和所有对Android源码实现感兴趣的读者。
作译者回到顶部↑
本书提供作译者介绍
杨丰盛,国内Android领域的先驱者和布道者,资深Android开发工程师,在Android应用开发方面有丰富的实战经验。他对Android的源代码进行了长达一年的系统学习和研究,对Android系统的架构设计和实现原理有非常深入的理解和认识,理论功底也十分深厚。国内著名IT技术网站51CTO推荐技术专家,曾多次接受《程序员》杂志采访并为其撰稿,同时他还多次应邀在国内的移动开发者大会和技术沙龙中开展讲座,深受欢迎。他还是畅销书作家,撰写的《Android应用开发揭秘》一书是目前Android领域口碑最好、销量也最好.. << 查看详细
目录回到顶部↑
《android技术内幕:系统卷》
前言
第1章 准备工作 /1
1.1 深入认识android /2
1.1.1 android的系统构架 /2
1.1.2 android的初始化流程 /5
1.1.3 各个层次之间的相互关系 /8
1.1.4 android系统开发(移植)和应用开发 /11
1.2 获取和编译android的源码 /13
1.2.1 环境配置 /13
1.2.2 获取android源码 /14
1.2.3 编译android的源码及其工具包 /16
1.2.4 运行android系统 /21
1.3 开发环境搭建 /23
1.3.1 应用开发环境搭建 /23
1.3.2 源码开发环境搭建 /26
1.4 android源码结构 /32
1.5 小结 /33
第2章 android的内核机制和结构剖析 /34
2.1 linux与android的关系 /35
前言
第1章 准备工作 /1
1.1 深入认识android /2
1.1.1 android的系统构架 /2
1.1.2 android的初始化流程 /5
1.1.3 各个层次之间的相互关系 /8
1.1.4 android系统开发(移植)和应用开发 /11
1.2 获取和编译android的源码 /13
1.2.1 环境配置 /13
1.2.2 获取android源码 /14
1.2.3 编译android的源码及其工具包 /16
1.2.4 运行android系统 /21
1.3 开发环境搭建 /23
1.3.1 应用开发环境搭建 /23
1.3.2 源码开发环境搭建 /26
1.4 android源码结构 /32
1.5 小结 /33
第2章 android的内核机制和结构剖析 /34
2.1 linux与android的关系 /35
前言回到顶部↑
经过三年的发展,Android已经从最初的智能电话领域逐渐进入教育、医疗、军事、汽车、家居等重要领域。它一路披荆斩棘,攻城拔寨,发展势头有目共睹,已经成为移动平台领域当之无愧的王者。目前,已有众多设备开始选择使用Android系统,比如智能手机、智能电视、平板电脑、上网本、MP3、MP4、智能相机等;相信在不久的未来,还将有更多采用Android系统的高科技产品进入我们的生活。这些设备将产生各种各样的应用需求,尤其是与Android系统底层相关的应用,这将给开发者带来大量的机会,尤其是系统级应用开发工程师。
Android基于Linux内核,但它并不是标准的Linux。因为Google为了让Android更适合移动手持设备,对Linux内核进行了各种优化和增强,这些增强的部分也正是从事Android系统开发的嵌入式系统工程师所急需了解的内容;同时Android的源代码不仅复杂,而且代码量巨大,各模块之间联系紧密。这让大多数Android应用开发者不知从何处入手,他们都希望能够有一本系统且全面的,对Android内核的构架和实现原理进行分析的书,而国内目前分析Android底层实现的书籍甚少。因此,笔者对自身的实战经验进行了总结和整理,编写了本书,希望能够帮助众多Android应用开发者更快、更深入地理解Android各个部分的具体实现,从而为开发各种系统级的应用做好准备。
本书分为两卷,系统卷和应用卷。系统卷主要分析Android系统层的实现,包括Android系统构架中的下面三层:Linux内核层、硬件抽象层、系统运行库层;应用卷介绍Android系统构架中的上面两层,重在分析Android应用层的实现,包括应用程序框架层和应用层。具体如图1所示:
图1Android系统构架①
图中Linux内核(Kernel)部分是本书系统卷第一部分的内容,主要分析Android的核心驱动程序的实现,包括驱动程序的系统构架、原理和实现。掌握这部分内容后,读者将能够修改和编写Android的各个设备驱动程序。紧接着上面则是硬件抽象层,本书第7章通过大量篇幅深入分析了Android中各个模块的硬件抽象层实现,使读者在掌握Android中已有的硬件设备接口实现的同时,能够独立编写适合自己的硬件设备驱动的抽象层接口。图中的Libraries部分即本书的第6章,分析了Android的系统库、程序库和功能库的具体实现,它能让读者在理解Android的各种功能的底层实现的同时,还能按照功能需求进行扩展和优化。最后,图中的Android运行时(Runtime)部分又分为Dalvik虚拟机和核心库两部分,分别在本书的第8章和第9章介绍,剖析了Dalvik虚拟机的构架与实现,以及Android核心库和API的运作机制,使读者能够完成Android运行库的移植和修改。
本书面向的读者
本书(系统卷)主要分析了Android系统底层的构架与实现原理,从源代码的获取和系统开发环境的搭建,到Android Kernel的核心实现,再到硬件抽象层和Android运行库等各个模块的细节实现,让读者可以从更深的层次去理解Android的系统构架,并对Android系统进行移植和二次开发。阅读本书的一个必要条件是对Linux内核有一定了解,因此本书(系统卷)非常适合以下开发人员阅读:
* Android系统开发/移植工程师
* Android驱动开发/移植工程师
* Android系统构架师
* 嵌入式系统工程师
应用卷则重在分析Android的应用层和应用程序框架层的运作机制,从基础的应用程序剖析入手,到应用程序API的实现,再到各模块的原理,让读者对Android有更深入、更全面的认识,同时结合商业案例的分析,让读者不仅能使用API开发应用,更能对API功能进行扩展,从而满足开发中的各种需求。因此,应用卷非常适合以下人员阅读:
* Android应用开发/移植工程师
* Android游戏开发/移植工程师
* Android构架师
如何阅读本书
在编写本书之前,笔者收到很多《Android应用开发揭秘》一书的读者发来的邮件,他们都希望有一本能深入讲解Android实现原理的书籍,因此编写了本书,旨在帮助众多开发者晋级。本书分为两册,如果是进行系统级开发,建议阅读本卷;如果是进行应用开发,建议阅读应用卷。
本书是以Android源码为基础进行分析的,因为源码内容很多,不能全部列出来,因此笔者建议在阅读本书的同时,最好能对照查看Android的源码实现(本书的所有代码清单都指明了它在源码中的路径,以方便大家查看);另外,本书中有多处标记为“注意”、“扩展学习”的内容,都是一些实战经验。最后,虽然Android的各部分联系紧密,但各个部分的讲解都较为完整,大家仍然可以根据需要调整阅读顺序。
Android基于Linux内核,但它并不是标准的Linux。因为Google为了让Android更适合移动手持设备,对Linux内核进行了各种优化和增强,这些增强的部分也正是从事Android系统开发的嵌入式系统工程师所急需了解的内容;同时Android的源代码不仅复杂,而且代码量巨大,各模块之间联系紧密。这让大多数Android应用开发者不知从何处入手,他们都希望能够有一本系统且全面的,对Android内核的构架和实现原理进行分析的书,而国内目前分析Android底层实现的书籍甚少。因此,笔者对自身的实战经验进行了总结和整理,编写了本书,希望能够帮助众多Android应用开发者更快、更深入地理解Android各个部分的具体实现,从而为开发各种系统级的应用做好准备。
本书分为两卷,系统卷和应用卷。系统卷主要分析Android系统层的实现,包括Android系统构架中的下面三层:Linux内核层、硬件抽象层、系统运行库层;应用卷介绍Android系统构架中的上面两层,重在分析Android应用层的实现,包括应用程序框架层和应用层。具体如图1所示:
图1Android系统构架①
图中Linux内核(Kernel)部分是本书系统卷第一部分的内容,主要分析Android的核心驱动程序的实现,包括驱动程序的系统构架、原理和实现。掌握这部分内容后,读者将能够修改和编写Android的各个设备驱动程序。紧接着上面则是硬件抽象层,本书第7章通过大量篇幅深入分析了Android中各个模块的硬件抽象层实现,使读者在掌握Android中已有的硬件设备接口实现的同时,能够独立编写适合自己的硬件设备驱动的抽象层接口。图中的Libraries部分即本书的第6章,分析了Android的系统库、程序库和功能库的具体实现,它能让读者在理解Android的各种功能的底层实现的同时,还能按照功能需求进行扩展和优化。最后,图中的Android运行时(Runtime)部分又分为Dalvik虚拟机和核心库两部分,分别在本书的第8章和第9章介绍,剖析了Dalvik虚拟机的构架与实现,以及Android核心库和API的运作机制,使读者能够完成Android运行库的移植和修改。
本书面向的读者
本书(系统卷)主要分析了Android系统底层的构架与实现原理,从源代码的获取和系统开发环境的搭建,到Android Kernel的核心实现,再到硬件抽象层和Android运行库等各个模块的细节实现,让读者可以从更深的层次去理解Android的系统构架,并对Android系统进行移植和二次开发。阅读本书的一个必要条件是对Linux内核有一定了解,因此本书(系统卷)非常适合以下开发人员阅读:
* Android系统开发/移植工程师
* Android驱动开发/移植工程师
* Android系统构架师
* 嵌入式系统工程师
应用卷则重在分析Android的应用层和应用程序框架层的运作机制,从基础的应用程序剖析入手,到应用程序API的实现,再到各模块的原理,让读者对Android有更深入、更全面的认识,同时结合商业案例的分析,让读者不仅能使用API开发应用,更能对API功能进行扩展,从而满足开发中的各种需求。因此,应用卷非常适合以下人员阅读:
* Android应用开发/移植工程师
* Android游戏开发/移植工程师
* Android构架师
如何阅读本书
在编写本书之前,笔者收到很多《Android应用开发揭秘》一书的读者发来的邮件,他们都希望有一本能深入讲解Android实现原理的书籍,因此编写了本书,旨在帮助众多开发者晋级。本书分为两册,如果是进行系统级开发,建议阅读本卷;如果是进行应用开发,建议阅读应用卷。
本书是以Android源码为基础进行分析的,因为源码内容很多,不能全部列出来,因此笔者建议在阅读本书的同时,最好能对照查看Android的源码实现(本书的所有代码清单都指明了它在源码中的路径,以方便大家查看);另外,本书中有多处标记为“注意”、“扩展学习”的内容,都是一些实战经验。最后,虽然Android的各部分联系紧密,但各个部分的讲解都较为完整,大家仍然可以根据需要调整阅读顺序。
媒体评论回到顶部↑
《Android技术内幕:系统卷》是Android开发者不可不看的一本翔实、全面、深入的Android著作,对Android系统的源代码进行了全面的分析,不愧为“技术内幕”,强烈推荐!——机锋网(http://www.gfan.com/)
毫无疑问,移动开发是软件开发领域当下最热门的话题之一,其中Android开发又是移动开发领域的焦点。目前市面上关于Android开发的书很多,但是从源代码角度系统分析Android架构设计与实现原理的书却没有,本书填补了市场空白。本书有两大特点:宏观上足够有高度,Android系统的五层架构一览无余;微观上足够有深度,对Android系统的Linux内核层、硬件抽象层和系统运行库层得各个模块的实现原理进行了深入的分析。这是一本难得的经典之作,强烈推荐!——51CTO移动开发频道(http://mobile.51cto.com/)
无论是移动设备的数量、开发者的数量,还是是应用程序的数量,Android均已超过iOS,可谓势不可挡。目前绝大部分的Android应用都运行于手机和平板电脑等智能移动终端上,但是Android逐渐开始被工业领域的一些设备所采用,开发者将面临更加复杂的应用环境,这要求开发者对Android系统有更深入的理解。本书的出版可谓恰逢其时,是开发者系统学习Android系统原理的宝贵资料,也是目前唯一可参考的中文资料。不可错过!——AOA(傲卓网)(http://aoandroid.com/)
如果你是一位高级Android应用开发工程师,或者是一位Android系统开发工程师,或者是一位Android移植工程师,再或者是一位Android应用架构师,本书对你来说将非常有价值。它对Android系统的Linux内核层、硬件抽象层和系统运行库层的各模块的进行了细致入微地分析,足以帮你解决平时开发过程中遇到的与系统底层相关度的难题。极力推荐!——Andriod开发者社区
自Android在国内普及以来,市面上关于Android的图书如雨后春笋般涌现,但是大多数图书都是引领读者入门的,重在讲解Android上层的框架及其使用,真正从底层去分析和阐述Android架构设计与实现原理的书屈指可数,本书恰好是这方面的一本佳作。如果想了解Android的整体结构和底层原理,这本书请不要错过!——姚尚朗(IceskYsl) eoeAndroid(http://www.eoeandroid.com)社区创始人兼CTO/畅销书作家
毫无疑问,移动开发是软件开发领域当下最热门的话题之一,其中Android开发又是移动开发领域的焦点。目前市面上关于Android开发的书很多,但是从源代码角度系统分析Android架构设计与实现原理的书却没有,本书填补了市场空白。本书有两大特点:宏观上足够有高度,Android系统的五层架构一览无余;微观上足够有深度,对Android系统的Linux内核层、硬件抽象层和系统运行库层得各个模块的实现原理进行了深入的分析。这是一本难得的经典之作,强烈推荐!——51CTO移动开发频道(http://mobile.51cto.com/)
无论是移动设备的数量、开发者的数量,还是是应用程序的数量,Android均已超过iOS,可谓势不可挡。目前绝大部分的Android应用都运行于手机和平板电脑等智能移动终端上,但是Android逐渐开始被工业领域的一些设备所采用,开发者将面临更加复杂的应用环境,这要求开发者对Android系统有更深入的理解。本书的出版可谓恰逢其时,是开发者系统学习Android系统原理的宝贵资料,也是目前唯一可参考的中文资料。不可错过!——AOA(傲卓网)(http://aoandroid.com/)
如果你是一位高级Android应用开发工程师,或者是一位Android系统开发工程师,或者是一位Android移植工程师,再或者是一位Android应用架构师,本书对你来说将非常有价值。它对Android系统的Linux内核层、硬件抽象层和系统运行库层的各模块的进行了细致入微地分析,足以帮你解决平时开发过程中遇到的与系统底层相关度的难题。极力推荐!——Andriod开发者社区
自Android在国内普及以来,市面上关于Android的图书如雨后春笋般涌现,但是大多数图书都是引领读者入门的,重在讲解Android上层的框架及其使用,真正从底层去分析和阐述Android架构设计与实现原理的书屈指可数,本书恰好是这方面的一本佳作。如果想了解Android的整体结构和底层原理,这本书请不要错过!——姚尚朗(IceskYsl) eoeAndroid(http://www.eoeandroid.com)社区创始人兼CTO/畅销书作家








点击看大图







加载中...
