随着3G/4G的到来,无线带宽越来越高,使得更多内容丰富的应用程序装入手机成为可能,如视频通话、视频点播、移动互联网冲浪和内容分享等。为了承载这些数据应用及快速部署,手机功能将会越来越智能,越来越开放。为了实现这些需求,必须有一个优秀的开发平台来支持,在此由谷歌(Google)公司发起的OHA联盟走在了业界的前列,2007年11月推出了开放的Android平台,任何公司及个人都可以免费获取源代码及开发SDK。由于其开放性和优异性,Android平台得到了业界广泛的支持,其中包括各大手机厂商和知名的移动运营商等。继2008年9月第一款基于Android平台的手机G1 发布之后,三星、摩托罗拉、索尼爱立信、LG等主流手机制造商都推出了自己的Android平台手机。在2011年年底,Android超越了塞班和iOS,雄踞智能手机市场占有率榜首的位置。根据国际数据公司(IDC)5月公布的新数据,在2013年第一季度,Android和iOS系统占的装机量到所有智能手机出货量的92.3%。在2013年头三个月,安装Android系统的新智能手机数量跃升至1.621亿部,大大超过去年同期的9030万部。这意味着,在销往世界各地的所有新智能手机中,谷歌的移动操作系统的市场占有率已经达到75%,与第一季度的59.1%相比有显著提高。
毕竟 Android平台被推出的时间才短短六七年,了解Android平台软件开发技术的程序员还不多,如何迅速地推广和普及Android平台软件开发技术,让越来越多的人参与到Android应用的开发中,是整个产业链都在关注的一个话题。为了帮助开发者更快地进入Android开发行列,笔者特意精心编写了本书。本书系统地讲解了Android底层驱动开发和移植的基本知识,图文并茂地帮助读者学习和掌握各种驱动的开发常识,详细讲解了Android源代码的方方面面。
从技术角度而言,Android是一种融入了全部Web应用的平台。随着版本的更新,从最初的触屏到现在的多点触摸,从普通的联系人到现在的数据同步,从简单的Google Map到现在的导航系统,从基本的网页浏览到现在的HTML 5,都说明Android已经逐渐稳定,而且功能越来越强大。此外,Android平台不仅支持 Java、C、C++等主流的编程语言,还支持Ruby、Python等脚本语言,甚至Google专为Android的应用开发推出了Simple语言,这使得Android有着非常广泛的开发群体。
本书内容
在本书的内容中,详细讲解了Android底层技术和驱动开发的基本知识。本书内容新颖、知识全面、讲解详细,全书分为21章,具体内容分布如下。
章 主要内容
第1章 什么是驱动以及Linux内核源代码简单剖析
第2章 搭建Linux开发环境,分析及编译Android源代码,在Linux环境下运行模拟器
(续表)
章 主要内容
第3章 Android移植的内容、驱动开发所要完成的任务,三种类型的驱动程序
第4章 传感器在HAL层的表现,HAL层的源代码与移植
第5章 Goldfish下的staging、Ashmen、Pmem、Alarm和Android Paranoid驱动
第6章 MSM内核与MSM的移植
第7章 OMAP内核与移植
第8章 显示系统的移植、调试与驱动程序实现
第9章 MSM处理器和OMAP处理器平台中输入驱动的实现
第10章 振动器的系统结构与移植
第11章 音频系统的层次、移植与不同平台下的实现
第12章 视频输出系统Overlay的分析、实现、调用
第13章 OpenMax多媒体框架的层次和实现
第14章 OpenCore引擎和Stagefright引擎的代码结构与扩展
第15章 传感器系统的结构、移植与实现
第16章 照相机系统的结构、移植与实现
第17章 Wi-Fi系统、蓝牙系统和定位系统的移植
第18章 开发电话系统
第19章 分析时钟系统驱动,实现时钟驱动程序的开发、移植和模拟器测试
第20章 分析USB Gadget驱动,依次讲解分析软件结构、层次整合和USB设备枚举
第21章 Lights光系统和Battery电池系统
全书内容都采用了理论加实践的教学方法,每个实例先提出制作思路及包含知识点,在实例最后补充总结知识点并出题帮助读者举一反三。
本书特色
本书内容相当丰富,实例内容覆盖全面,满足Android技术人员成长道路上的方方面面。编者的目标是通过一本图书,提供多本图书的价值,读者可以根据自己的需要有选择地阅读,以完善自身的知识和技能结构。在内容的编写上,本书具有以下特色。
(1)结构合理
从读者的实际需要出发,科学安排知识结构,内容由浅入深,叙述清楚,具有很强的知识性和实用性,反映了当前Android技术的发展和应用水平。同时全书精心筛选的最具代表性、读者最关心典型知识点,几乎包括Android底层和驱动技术的各个方面。
(2)易学易懂
本书条理清晰、语言简洁,可帮助读者快速掌握每个知识点;每个部分既相互连贯又自成体系,使读者既可以按照本书编排的章节顺序进行学习,也可以根据自己的需求对某一章节进行针对性的学习。
(3)实用性强
本书彻底摒弃枯燥的理论和简单的操作,注重实用性和可操作性,详细讲解了各个部分的源代码知识,使用户在掌握相关操作技能的同时,还能学到相应的基础知识。
本书作者
参加本书编写的人员有:怀志和、王振丽、林慧晶、程娟、王文忠、陈强、何子夜、李天祥、万春朝、扶松柏、邓才兵、周锐、王东华、管西京、薛小龙。本团队在编写过程中由于时间和水平所限,书中难免有不足之处。如有纰漏和不尽如人意之处,诚请读者提出意见或建议,以便修订并使之更臻完善。另外,为了更好地为读者服务,本书专门提供了技术支持网站,欢迎读者光临论坛,无论是书中的质疑,还是学习过程中的疑惑,本团队将尽力为大家解答。
编者
2014年11月