深入剖析Android系统(基于Google发布的Jelly Bean原始代码,讲述Android系统的内部静态结构关系和内部运行机制,为你呈现原汁原味的Android代码分析大餐!)
杨长刚著
ISBN 978-7-121-19374-3
2013年1月出版
定价:59.00元
464页
16开
编辑推荐
基于Google发布的Jelly Bean原始代码,讲述Android系统的内部静态结构关系和内部运行机制,为你呈现原汁原味的Android代码分析大餐!
同类书推荐:
《Android内核剖析》
《Android系统源代码情景分析》
内容提要
本书以Android Jelly Bean(4.1)的代码为蓝本,对Android的部分关键代码进行了注释分析,并辅以大量插图,讲述了Android大部分子系统中的模块和类的静态结构,让读者对Android系统的内部静态结构有着“类”粒度这一层级上的认识和了解。同时,也对关键类和函数的代码调用流程、运行时刻所位于的进程和线程上下文等动态运行场景进行了分析讲述,让读者深刻理解Android系统内部是如何运行的。本书直接对Source Insight进行截图,保留了代码的原始行号、英文注释等信息并进行了高亮显示,方便读者阅读;代码中同时添加了作者所做的中文注释说明。
作者简介
杨长刚,2005年春毕业于西南交通大学计算机应用技术专业,获硕士学位;后进入手机行业从事Linux手机软件开发工作。目前在一家欧美企业从事Android方面的技术工作。作者官方博客:http://www.redwolf-blog.com/
媒体评论
面对Android的海量代码,我们的工程师同事们刚开始总不知如何下手。有了本书,它将引导大家进入Android的内部代码世界。
——诚迈科技(南京)有限公司 设备软件事业部经理 储刘火
本书汇聚作者多年的Android研发经验, 在作者的引导下,您会逐渐理清Android的内部运行方式,作者在关键部分的注解,为您阅读源代码扫清障碍。
——联发博动(北京)有限公司高级工程师潘鹏
在Android与iOS分庭抗礼的移动互联时代,开放的Android几乎成为一种公众语言,掌握它可以使我们与Google、与厂商平等对话,发出自己的声音,让我们在互联终端设备领域驰骋无羁。
——Nvidia 客户经理申力茜
这是一本让你能贯穿Android手机系统的书,它涵盖了从中间框架到上层应用的大部分内容,是一本完全适合参与Android开发的软件工程师参考阅读的书。作者以他在Android系统上坚实的背景知识和工作经验,为我们讲述了一个复杂系统的运行过程,引领我们快速进入Android的内部世界。
——Broadcom 高级应用工程师王文龙
我是一个Android应用开发者,疯狂地热爱Android底层,我希望更深地了解Android SDK API背后的东西,以便我能更透彻地理解Android的官方文档,我还希望利用Android中某些最新特性去开发更酷功能更强的程序。这本书将给我很大的帮助。
——58同城 Android高级开发工程师章发明
从事Android相关工作多年,读这本书仍然对我有许多启迪,尤其是其内部结构和运行机制,我十分高兴能读到这本书!
——联想公司 高级系统工程师 朱庆友
前言
为了让读者可以对Android系统进行“有血有肉”的感知,而不是停留在抽象的原理和概念之上,本书对Android的代码进行了分析,进而“提炼”出Android的全貌。又因为Android有着海量代码,故只分析了Android系统的一些主要模块和类,不对各个细节进行全面分析,这样可以在有限的篇幅中让读者了解Android的内部结构和运行机制,同时避免让读者陷入海量代码的云雾中而不得要领。
由于Android系统升级较快,有些代码变动很大。对设计上有重大改变的一些模块,笔者也兼顾提及了Android的2.x版本和4.0版本中的设计,甚至个别模块在未来的版本中的可能的演进方向。
现将本书各章内容介绍如下:
第1章介绍了智能指针。在Android的native层的C++代码中,存在着大量形如sp和wp模板的运用,它们都是智能指针模板。通过本章,读者将掌握native层的类的对象的生命周期。
第2章介绍了Android中消息队列和线程处理机制。这涉及native层的Looper和Java层的Looper、Handler及Message等,让读者更好地理解Android中的代码执行流程场景和所在的线程上下文。
第3章详细介绍了Android中最重要的一种机制Binder IPC及其应用。在Android中,一个简单的功能或上层API的一个简单调用,往往需要跨越多个进程。一个子系统的功能也往往由各个进程中的模块来完成,这就要用到Android的核心机制Binder IPC。Binder IPC不仅位于native代码中,也大量存在于Java层的代码中,因此以Java层的播放服务(IMediaPlaybackService)和电话状态监听器(PhoneStateListener)为例,详细分析了多个进程之间的相互调用,尤其是后一个例子,双向跨越了多个进程。另外,为了避免大内存数据传输,借助于Binder IPC机制,Android实现了大内存块的跨进程共享。
第4章介绍了HAL硬件抽象层,让读者了解到Android的框架系统如何利用其下面的抽象硬件。
第5章介绍了Android的启动过程。内容涉及Android初始化语言,Linux系统的第一个进程init的启动过程,以及init进程如何解析用Android初始化语言编写的.rc脚本文件。最后简要介绍了Android系统中的服务所驻留的宿主进程system_server的启动过程。
第6章介绍了Android输入系统,让读者对输入系统的执行过程有一定的了解。
第7章介绍了Android系统中的大容量存储(MassStorage)系统,让读者熟悉Android存储设备的管理机制。
第8章介绍了Android中的传感器(Sensor)系统,让读者对传感器有所了解。
第9章介绍了RIL,包括C语言实现的RIL和与其通信的RILJ(Java类RIL)。通过阅读本章,读者将了解Java层上传消息和下送命令的机制,它是Java层的电话功能通道。
第10章介绍了Android系统中的phone进程。首先简单介绍了层次状态机,有助于读者了解层次状态机的工作机制,以便于分析使用层次状态机的代码,如PS域的数据连接、Wi-Fi和蓝牙的连接状态等。接着,对Android电话功能的实现进行了介绍。
第11章对Android中的Graphic系统进行了分析,其中包括SurfaceFlinger中新引入的VSync机制。
第12章介绍了Android中的OpenGL ES软件层次栈,让读者了解OpenGL ES的层次调用关系,以及如何通过钩子(hook)将库中的API关联起来。
第13章介绍了Android的多媒体系统,主要介绍了播放和录制的过程。通过阅读本章,读者将了解Java的SDK API层如何调用native层的Service服务,以及Service如何向应用程序发送消息通知。最后,介绍了Android中的Camera。让读者了解硬件抽象层的Camera如何向Java层发送采样数据。
第14章介绍了Audio系统的播放和录音过程,让读者了解Android中的应用程序进程和AudioFlinger之间的数据传输关系。最后,介绍了AudioFlinger的工作机理、音效和音频策略服务。通过阅读本章,读者将熟悉Android中的音频系统的工作过程。
第15章介绍了Android的多媒体框架Stagefright,并提及Android版本演进过程中的不同设计理念下的视频帧的渲染输出原理。通过阅读本章,读者将进一步熟悉多媒体系统的处理过程。
第16章介绍了OMXCodec。这将有助于读者了解Stagefright如何使用OMXCodec进行编解码,以及OMXCodec如何使用平台厂家实现的OMX插件。
第17章介绍了Android的GPS系统,让读者了解GPS部分的工作机制。
第18章介绍了Android中的NFC实现,让读者了解Android中的NFC的工作机制。
第19章介绍了Android对USB外设的处理过程。
第20章简要介绍了Android中的蓝牙和Wi-Fi的系统架构。
第21章介绍了用于生成tombstone调试文件的Debuggerd守护进程。通过阅读本章,读者将获悉Android如何记录C/C++代码崩溃时的场景信息,以让开发者获取足够多的调试信息。
为了表示对他人劳动成果的尊重和方便读者进行延伸阅读,本书在页脚注释中给出了笔者参阅的文章、文档和书籍的网络链接和说明。对于侧重点不同的文章或书籍,笔者也给读者做了阅读推荐。
由于笔者时间、精力和能力所限,书中涉及的内容定会存在错误之处,还请相关专家及读者批评批正,不胜感激。
在阅读本书前,读者需要具备C、C++、Java等编程语言和Android的基础知识。读者最好对Linux系统、Linux命令行和 Shell脚本等有基本了解。若读者对设计模式、Linux系统编程(推荐伽玛等的《设计模式——可复用面向对象软件的基础》,史蒂文斯和拉戈的《UNIX环境高级编程》)有所了解,再拥有书中相关子系统的背景知识,那么阅读本书和理解Android系统将是件十分轻松的事。
相关推荐
《深入剖析Android系统》这本书是Android开发者不可多得的参考资料,尤其对于想要深入了解Android系统内部运作机制的人来说,它提供了一扇宝贵的窗口。本书基于Android Jelly Bean(4.1)版本的源码,对Android系统...
《深入剖析Android系统》是Android开发领域的一本权威著作,由技术专家杨长刚撰写。这本书全面、深入地探讨了Android系统的内部工作机制,为开发者提供了深入理解Android平台的宝贵资源。通过对本书的学习,读者可以...
《深入剖析Android系统》以AndroidJellyBean(4.1)的代码为蓝本,对Android的部分关键代码进行了注释分析,并辅以大量插图,讲述了Android大部分子系统中的模块和类的静态结构,让读者对Android系统的内部静态结构...
这两本PDF文献,"使用Android系统测量软件开发技术.pdf"和"深入剖析Android开发小应用里的大智慧.pdf",无疑是深入理解Android开发的重要资源。 首先,让我们探讨“使用Android系统测量软件开发技术”。Android系统...
《深入剖析Android 开发小应用里的大智慧》是由张泳和葛丽娜编著的一本专业书籍,2014年出版。这本书是为那些希望深入理解Android应用程序开发的开发者们精心编写的,旨在揭示在小巧的应用程序背后所蕴含的复杂技术...
资源名称:深入解析Android 5.0系统内容简介:《深入解析Android 5.0系统》详细剖析了最新Android 5.0 系统主要框架的原理和具体实现。本书共24章,覆盖了Android 5.0 系统中、下层重要的模块,对于每个模块都详细...
深入理解ANDROID系统-高清版-带详细目录书签-可跳转 PDF 本资源转载自网络,供学习研究之用,如用于商业用途,请购买正版,如有侵权,请联系我或CSDN删除。
在内容上,《深入理解Android:Telephony原理剖析与最佳实践》从从源代码角度深入解析了Android Telephony的架构设计与实现原理,深刻揭示了Android系统的通信机制。对于Android应用开发工程师和系统工程师而言,...
笔者认为,本书最大的特点在于,较全面、系统、深入地讲解了Android系统中的几大重要组成部分的工作原理,旨在通过直接剖析源代码的方式,引领读者一步步深入于诸如Binder、 Zygote、Audio、Surface、Vold、Rild...
Android系统默认在消息池中初始化10个`Message`对象,以优化性能和减少内存消耗。 `MessageQueue`,即消息队列,是存放`Message`对象的容器。它按照“先进先出”的顺序管理`Message`对象。与一般的数据结构不同,...
本项目旨在深入剖析Android系统的核心原理,并详细阐述其开发过程中的关键要点,为计算机专业的毕业生和Android开发者提供一套全面而系统的培训课件。 在内容方面,该培训课件首先介绍了Android系统的基本架构和...
经典畅销书系“深入理解Android”系列Framework卷完结篇,数十万Android开发... 《深入理解Android(卷3)》是该系列Framework卷的第III卷,分析的主要对象是Android系统的UI,这应该是目前该领域系统和深入的资料。
总结来说,Service是Android系统中用于后台运行任务的基础,但需要开发者手动处理线程和生命周期管理。而IntentService是对Service的扩展,它自动化处理了多线程和任务队列,简化了后台服务的编程模式,提高了代码的...
在内容上,《Android系统源代码情景分析(含CD光盘1张)》结合使用情景,全面、深入、细致地分析了Android系统的源代码,涉及到Linux内核层、硬件抽象层(HAL)、运行时库层(Runtime)、应用程序框架层...
经典畅销书系“深入理解Android”系列Framework卷完结篇,数十万Android开发... 《深入理解Android(卷3)》是该系列Framework卷的第III卷,分析的主要对象是Android系统的UI,这应该是目前该领域系统和深入的资料。
在内容上,本书结合使用情景,全面、深入、细致地分析Android系统的源代码,涉及到Linux内核层、硬件抽象层(HAL)、运行时库层(Runtime)、应用程序框架层(Application Framework)以及应用程序层(Application)。...
在内容上,本书结合使用情景,全面、深入、细致地分析Android系统的源代码,涉及到Linux内核层、硬件抽象层(HAL)、运行时库层(Runtime)、应用程序框架层(Application Framework)以及应用程序层(Application)。...