第一图书网

深入Android应用开发

苗忠良,曾旭,宛斌 机械工业出版社华章公司
出版时间:

2012-7-10  

出版社:

机械工业出版社华章公司  

作者:

苗忠良,曾旭,宛斌  

页数:

452  

Tag标签:

无  

前言

为什么写作本书 作为一个应势而生的移动终端操作系统,Android适应了移动互联网的发展和“4C”融合的趋势,为产业从以硬件为重心向以内容和服务为重心转型提供了一个绝佳的平台。更由于其发起者Google的正确商业推广策略,自发布之日起,Android便赢得了众多开发者和OEM厂商的青睐与支持,支持者如滚雪球般不断扩大,最终后来居上。由于其面向互联网设计的特点,Android适用于数字家庭、远程医疗、物联网、交通监控、移动终端、机器人等多种应用领域,能很好地适应移动互联网的发展,其前景被越来越多的人看好。Android的出现,加速了以“内容”和“服务”为重心的新一代信息产业革命的发展。 随着移动互联网的发展,科技的魅力逐渐渗透到世界的每个角落,但是随着科技的普及,至少在消费类电子领域,以技术驱动为核心的价值观理念正逐渐让位于以消费需求为核心的价值观理念。衡量产品成功的标准不再局限于技术是否先进,而是能否最大限度地满足消费者需求。Android的出现正逢其时。 然而Android庞大的架构背后蕴含的设计理念和逻辑细节异常复杂,入门容易,深入却难,需要开发者仔细钻研。Android的知识点跨越了Linux、Java、C/C++、XML、移动终端、无线接入技术、用户研究和计算机网络等多个领域,整合了计算机网络、嵌入式系统、移动通信、集成电路、工业设计、人机交互、设计艺术学等多个学科。 在本书中,根据以往和读者交流的经验,笔者摒弃了以前侧重理论和理念引导的写作方法,更注重实战经验的总结。从哲学角度看,这是一种退步,但是就具体的开发和与技术的适配来看,这种写作方法更加有利于将笔者的心得分享给读者,帮助读者迅速提高自己的开发水平。 然而必须申明,任何平台和工具均是开发者表达自己理念的一种手段,永远无法也不应该替代开发者头脑中的应用的设计理念,尤其是在进行商业开发的过程中,应始终明确设计理念和商业模式远比工具本身更重要。API仅是表达设计意图的一个途径,必须将个人的视野拔高到设计的层次。在商务实践中,战略和执行力构成个人和企业成功的两大基石,自身的技术能力和能够利用的资源则决定着产品的质量。只懂使用工具的人称不上优秀的人才,相比内外兼修的“中华功夫”高手,不过徒然练就了“一身外功”而已。只有理论与实践兼修,才能够深刻了解产业的发展趋势,才能找到正确的切入点,才能体会到工程实践的重要意义,才能理解优秀的产品其实是一种平衡者才能获得的更高成就,而前进的每一步都是在不断否定自我的过程中实现的。 秉持一贯的作风,本书少有完整的例子供开发者参考,因为在Android SDK所携带的文档中,已经有足够多的示例供开发者学习,笔者没有必要在此着墨太多。 在具体的内容上,本书以源代码为主、SDK为辅的方式与大家分享经验心得。希望本书能够帮助Android爱好者一窥Android内在的神秘。本书面向的读者 本书适合所有有一定基础的Android应用开发工程师和系统开发工程师阅读。本书主要内容 本书在逻辑上力避耦合,读者可以根据自己的需要调整阅读顺序。缺乏Android基础的读者请务必先详细阅读本书的附录。 本书第1~4章介绍Android基础开发涉及的核心组件、应用框架、资源框架、UI控件、数据存储等,这是所有Android开发者都应掌握的;第5~10章介绍Android框架层的通信机制、多线程编程、网络编程、图像与动画、多媒体编程、跨语言调用等内容,这些是中等水平的Android开发者必须掌握的;第11~15章则介绍了Android的安全框架、调试与优化、编译环境、启动过程和系统管理,以帮助开发者完成更高层次的积累并为商业级产品开发做好准备。支持和勘误 除了苗忠良、曾旭、宛斌之外,周红恩、王振伟、李德伟、张婷婷、刘存青、王珊珊等还参与了资料的整理和示例的收集等工作。 由于笔者水平有限,书中难免还存在一些不足,请大家见谅。您若对本书有任何意见和建议,欢迎发邮件到mzl626@163.com和笔者讨论。 本书中所涉及的源代码可在http://source.android.com处下载。致谢 在本书撰写过程中,得到了公司同事管艳丽、陈文、唐晓军、何伟伟等和家人的大力鼓励和支持,他们为本书提供了很多好的意见和建议,使本书得以不断完善,在此对他们表示深深的谢意,我很高兴能在创业的道路上和他们一路同行;另外,我的儿子苗思源的降生带给了我极大的快乐,每天看到他天真无邪的笑脸,都觉得是一种莫大的幸福,这种幸福激励着我不断奋斗。 另外,还要感谢机械工业出版社的编辑、美工和校对人员,尤其是策划编辑杨福川先生,及姜影和白宇两位编辑。在本书撰写过程中,他们提出了不少真知灼见,很高兴能和他们一起推动本书的出版。苗忠良

内容概要

  如何才能真正进阶为Android应用开发高手?必须深入理解Android核心技术的底层原理和在开发中总结并使用各种最佳实践,别无他法!本书以Android的源代码为主,SDK为辅,针对应用开发者的需求,对各种核心技术的使用方法、底层原理和实现细节进行了深入而详细的讲解,同时辅之以大量案例和最佳实践,为开发者的进阶修炼和开发高质量的应用提供了绝佳指导。
第1章深入介绍了Android的4大核心组件和9大主要应用框架;第2章透彻讲解了资源、组件、事件处理、应用风格和数据适配等核心知识;第3章系统地展示了各种常用的UI控件的使用方法及原理,并对XML和Java这两种控件属性配置方式和适用场景进行了分析和比较;第4章深入阐述了Android的数据存储与管理;第5章分析了Android在UI层、框架层和内核层的通信机制和原理;第6章深入讲解了Android实现多线程的两种主要方式(原生Java线程和Android对Java线程的封装)的原理,并对它们进行了全方位比较;第7章深入介绍了Android网络编程的核心技术;第8章详细讲解了Android中的2D图像、3D图像、2D图形以及动画方面的知识;第9章全面介绍了Android的多媒体编程,包括音频、视频和Camera服务等,并对TTS的实现进行了剖析;第10章详细讲解了Android的跨语言调用;第11章深入剖析了Android的安全框架和安全机制;第12章针对商业应用的需要讲解了Android的调试、测试与性能优化;第13章全面地剖析了Android的编译系统,包括编译工具、映像文件编译、SDK编译、NDK编译和目标系统的配置等;第14章分析了Android系统的启动过程;第15章讲解了Android的系统管理原理,包含内存管理、应用管理、电源管理、系统管理,以及系统的还原、升级、配置和备份等多方面的内容,能帮助开发者从一个更高的视角去理解Android的运行机制。

作者简介

  苗忠良,资深Android开发工程师和嵌入式软件开发工程师,对Android、Linux和Qtopia等平台和技术有非常深入的研究,实践经验极其丰富。尤其是在Android领域,不仅擅长Android应用的开发,对Android系统的底层原理有非常深入的研究,而且还对Android应用的设计开发思想和用户体验有非常深入的认识。现担任某公司上海研发中心的技术总监,拥有发明专利3项,发表学术论文多篇,曾多次在高校和企业举办技术讲座,深受欢迎。

书籍目录

前言
第1章 深入解析Android核心组件和应用框架
 1.1 核心组件详解
 1.1.1 Activity组件
 1.1.2 Service组件
 1.1.3 Intent组件
 1.1.4 BroadcastReceiver组件
 1.2 应用框架解析
 1.2.1 Service框架
 1.2.2 Activity管理机制
 1.2.3 Broadcast机制
 1.2.4 对话框框架
 1.2.5 标题栏框架
 1.2.6 状态栏框架
 1.2.7 通知机制
 1.2.8 搜索框架
 1.2.9 ActionBar框架
第2章 Android 资源框架详解/
 2.1 布局文件
 2.2 值文件
 2.3 创建菜单
 2.3.1 选项菜单
 2.3.2 上下文菜单
 2.3.3 子菜单
 2.3.4 弹出菜单
 2.4 断言的处理
 2.5 Jar包和共享库
 2.6 系统资源
第3章 Android UI控件精要
 3.1 布局控件
 3.1.1  LinearLayout
 3.1.2 RelativeLayout
 3.1.3 TableLayout
 3.1.4 FrameLayout
 3.2 显示控件
 3.2.1 TextView
 3.2.2 ProgressBar
 3.2.3 WebView
 3.2.4 ViewSwitcher
 3.2.5 TextSwitcher
 3.2.6 ViewFlipper
 3.2.7 SeekBar
 3.2.8 ViewStub
 3.3 容器控件
 3.3.1 SlidingDrawer
 3.3.2 ListView
 3.3.3 ExpandableListView
 3.3.4 GridView
 3.3.5 ScrollView
 3.3.6 TabHost
 3.4 输入控件
 3.4.1 EditText
 3.4.2 Spinner
 3.4.3 AutoCompleteTextView
 3.5 控制控件
 3.5.1 Button
 3.5.2 CheckBox
 3.5.3 RadioButton
 3.5.4 RatingBar
 3.5.5 ZoomControls
 3.6 多媒体控件
 3.6.1 ImageView
 3.6.2 ImageSwitcher
 3.7 特殊控件
 3.8 桌面部件
 3.8.1 App Widgets的实现
 3.8.2 Live folders的实现
 3.9 自定义控件
 3.10 数据适配
 3.10.1 视图适配
 3.10.2 标准化解析
 3.11 Fragment
 3.11.1 Fragment 生命周期
 3.11.2 ListFragment
 3.11.3 DialogFragment
 3.11.4 PreferenceFragment
 3.11.5 WebViewFragment
第4章 深入解析Android数据存储与管理
 4.1 XML文件管理
 4.2 内部文件管理
 4.2.1 写入数据
 4.2.2 读取数据
 4.3 外部文件管理
 4.4 数据库管理
 4.4.1 Android封装接口
 4.4.2 原生方法处理
 4.5 数据处理
 4.5.1 Set类
 4.5.2 Map类
 4.5.3 list类
 4.5.4 流类
 4.5.5 正则表达式
 4.5.6 I/O管理
 4.5.7 JSON实现
第5章 深入解析Android通信机制
 5.1 Intent通信
 5.1.1 Intent的常见用法
 5.1.2 Serializable接口
 5.1.3 Parcelable接口
 5.2 UI事件处理
 5.2.1 事件监听器、事件句柄及焦点处理
 5.2.2 触控事件处理
 5.2.3 按键事件处理
 5.2.4 轨迹球事件处理
 5.3 任务调度
第6章 深入解析Android多线程编程
 6.1 Java线程实现
 6.2 Android线程封装
 6.3 线程间的消息通信
 6.3.1 消息队列
 6.3.2 消息分发
 6.3.3 消息接收
 6.4 线程安全处理
 6.4.1 synchronized同步
 6.4.2 RPC通信
 6.4.3 SQLite调用
第7章 深入解析Android网络编程
 7.1 无线接入技术概述
 7.2 基础协议封装
 7.3 Java网络编程接口
 7.4 Apache网络编程接口
 7.5 Android网络编程接口
 7.6 Web服务实现
 7.6.1 Web服务概述
 7.6.2 KSOAP2的实现
 7.7 XML解析器
 7.7.1 Pull解析器
 7.7.2 DOM解析器
 7.7.3 SAX解析器
 7.8 套接字编程
 7.9 Web应用实现
 7.10 SIP服务
 7.11 NFC通信
 7.12 RIL层处理
 7.13 报文分析
第8章 Android图形、图像与动画精要
 8.1 2D图像处理
 8.1.1 基本接口
 8.1.2 缩略图
 8.1.3 图像浏览
 8.1.4 人脸检测
 8.2 3D图像处理
 8.2.1 OpenGL ES的实现
 8.2.2 RenderScript的实现
 8.3 图形处理
 8.3.1 基本接口
 8.3.2 Surface渲染系统
 8.4 动画处理
 8.4.1 补间动画
 8.4.2 帧动画
 8.4.3 属性动画
第9章 深入解析Android多媒体编程
 9.1 音频处理
 9.1.1 音频播放
 9.1.2 音频录制
 9.1.3 音频管理
 9.1.4 音效处理
 9.2 视频处理
 9.2.1 视频播放
 9.2.2 视频录制
 9.3 Camera服务
 9.4 TTS的实现
第10章 Android跨语言调用详解
 10.1 C语言与汇编语言的相互调用
 10.2 C++与C语言的相互调用
 10.3 Java对C/C++的调用
 10.4 C/C++对Java的调用
第11章 Android安全框架解析
 11.1 Java混淆器
 11.2 接入权限
 11.2.1 创建接入权限
 11.2.2 应用权限
 11.2.3 权限验证
 11.2.4 接入服务
 11.2.5 框架层接入限制
 11.3 数字证书
第12章 Android的调试、测试与性能优化
 12.1 Android调试
 12.1.1 Logcat日志调试
 12.1.2 dmtracedump跟踪
 12.1.3 Dev Tools调试
 12.1.4 屏幕截图分析
 12.1.5 内存调试
 12.2 Android布局优化
 12.2.1 Layoutopt优化
 12.2.2 Hierarchyviewer优化
 12.3 Android测试
 12.3.1 Monkey压力测试
 12.3.2 JUnit回归测试
 12.3.3 CTS兼容性测试
 12.3.4 目标环境测试
 12.4 Android性能优化
 12.4.1 优化资源读取
 12.4.2 优化APK加载
 12.4.3 Dalvik虚拟机
 12.4.4 TraceView性能分析
 12.4.5 运行效率的优化
第13章 深入解析Android编译系统
 13.1 源代码编译
 13.1.1 映像文件
 13.1.2 编译方法
 13.1.3 主要脚本
 13.1.4 环境变量
 13.1.5 目标环境
 13.2 SDK编译
 13.2.1 Linux下的SDK编译
 13.2.2 Windows下的SDK编译
 13.2.3 ADT插件的编译
 13.3 NDK编译
 13.3.1 编译脚本
 13.3.2 配置脚本
 13.3.3 GDB调试
 13.3.4 NativeActivity实现
 13.4 应用程序编译
 13.4.1 本地环境变量
 13.4.2 在Eclipse下编译
 13.5 目标系统配置
 13.5.1 自定义模拟器配置
 13.5.2 目标板配置
 13.5.3 目标环境配置
 13.6 文件系统配置
 13.7 编译工具
 13.8 fastboot模式
第14章 Android启动过程详解
 14.1 系统的启动过程
 14.1.1 系统属性配置
 14.1.2 文件系统挂载
 14.1.3 守护进程启动
 14.2 应用的启动过程
 14.2.1 应用的启动配置
 14.2.2 应用的启动过程
第15章 深入解析Android系统管理
 15.1 内存管理
 15.1.1 对象引用
 15.1.2 垃圾回收策略
 15.2 应用管理
 15.2.1 应用的配置
 15.2.2 应用的启动
 15.2.3 应用的销毁
 15.3 电源管理
 15.3.1 电源管理框架
 15.3.2 应用层策略
 15.4 下载管理
 15.4.1 Gingerbread前的下载
 15.4.2 Gingerbread后的下载
 15.5 系统配置
 15.5.1 系统数据库
 15.5.2 系统属性
 15.6 数据管理
 15.6.1 数据备份
 15.6.2 剪切板管理
 15.7 设备管理
 15.7.1 管理工具
 15.7.2 传感器管理
 15.7.3 USB管理
 15.8 应用发布
 15.8.1 应用商店概述
 15.8.2 目标环境的适配
 15.8.3 发布应用
附录A Android开发环境搭建
附录B 常用Linux命令
附录C 编码规范
附录D 学习资源
参考文献

章节摘录

第1章深入解析Android核心组件和应用框架本章将详细介绍Android的四大核心组件并深入剖析九大主要应用框架,旨在帮助读者更好地理解Android的系统框架。1.1 核心组件详解Android有4个核心组件,分别是:提供界面显示的Activtiy、提供后台计算的Service、提供进程间通信的Intent和提供广播接收的BroadcastReceiver。本节将详细介绍这些核心组件的使用方法和技巧,以及隐藏在背后的一些逻辑和原理。

媒体关注与评论

开发者是各移动平台竞争的最关键因素,因为这直接决定了平台能为用户提供怎样的软件服务。然而,对于开发者而言,什么才是最关键的因素?很显然,是应用的质量!如何才能开发出高质量的应用?相信这是每个Android程序员都会关心的问题!答案只有一个:深入了解Android的底层原理并在实践中多总结。本书准确地抓住了开发者的这一需求,首先深入解析了要修炼成为Android开发高手必须掌握的Android底层知识的实现原理,同时也将作者在实践中总结出来的最佳实践无私地奉献了出来,为Android程序员的进阶指明了一条捷径。强烈推荐!——51CTO(www.51cto.com) 中国领先的IT技术网站市面上关于Android的书很多,大致可以分为两类:要么专注于应用层面,即通过对SDK及其用法的讲解来教读者如何去开发Android应用;要么专注于系统原理层面,即通过对Android系统源代码的分析来阐述系统的工作机制。本书则找到了另外一条途径,对前面两类书进行了综合,以通过源代码分析Android底层机制为主,以SDK的深入讲解为辅,目的是希望帮助那些想成为高级Android开发者的读者通过了解Android的工作原理来提升开发水平,最终开发出高质量的Android应用来。对于有一定基础的Android开发者来说,本书应该不容错过,作者将所有需要掌握的核心知识都集中地整理了出来并做了透彻深入的讲解,为大家节约了大量宝贵的时间。——开源中国社区(www.oschina.net)Google收购摩托罗拉移动的计划已经被各方正式批准,但有两个重要的附加条件:不能以歧视方式对待任何基于Android的原始设备制造商,5年内保持Android开放和免费。这一收购的成功至少能说明一点:未来5年,Android开发者社区仍然会保持一片繁荣的局面。作为开发者,最核心的当然是技术了,这是开发高品质应用的前提和基础?Android系统如此复杂,如何才能真正掌握核心的底层技术?Android系统如此庞大,有哪些核心技术是开发者必须掌握的?本书作者是经验丰富的Android开发工程师,对这两个问题给予了很好的回答,值得所有想进一步提升的Android工程师阅读和参考。——Android开发者中文社区


编辑推荐

《深入Android应用开发:核心技术解析与最佳实践》编辑推荐:以源代码为依托,逐步深入讨论Android应用开发涉及的方方面面;展示大量最佳实践,为开发高质量的Android应用提供绝佳指导。

名人推荐

开发者是各移动平台竞争的最关键因素,因为这直接决定了平台能为用户提供怎样的软件服务。然而,对于开发者而言,什么才是最关键的因素?很显然,是应用的质量!如何才能开发出高质量的应用?相信这是每个Android程序员都会关心的问题!答案只有一个:深入了解Android的底层原理并在实践中多总结。本书准确地抓住了开发者的这一需求,首先深入解析了要修炼成为Android开发高手必须掌握的Android底层知识的实现原理,同时也将作者在实践中总结出来的最佳实践无私地奉献了出来,为Android程序员的进阶指明了一条捷径。强烈推荐! ——51CTO中国领先的IT技术网站 市面上关于Android的书很多,大致可以分为两类:要么专注于应用层面,即通过对SDK及其用法的讲解来教读者如何去开发Android应用;要么专注于系统原理层面,即通过对Android系统源代码的分析来阐述系统的工作机制。本书则找到了另外一条途径,对前面两类书进行了综合,以通过源代码分析Android底层机制为主,以SDK的深入讲解为辅,目的是帮助那些想成为高级Android开发者的读者通过了解Android的工作原理来提升开发水平,最终开发出高质量的Android应用来。对于有一定基础的Android开发者来说,本书不容错过,作者将所有需要掌握的核心知识都集中地整理了出来并做了透彻深入的讲解,为大家节约了大量宝贵的时间。 ——开源中国社区Google收购摩托罗拉移动的计划已经被各方正式批准,但有两个重要的附加条件:不能以歧视方式对待任何基于Android平台的原始设备制造商,5年内保持Android开放和免费。这一收购的成功至少能说明一点:未来5年,Android开发者社区仍然会保持一片繁荣的局面。作为开发者,最核心的当然是技术了,这是开发高品质应用的前提和基础。Android系统如此复杂,如何才能真正掌握核心的底层技术?Android系统如此庞大,有哪些核心技术是开发者必须掌握的?本书作者是经验丰富的Android开发工程师,对这两个问题给予了很好的回答,值得所有想进一步提升的Android工程师阅读和参考。 ——Android开发者中文社区

图书封面

图书标签Tags

广告

下载页面


深入Android应用开发 PDF格式下载



目前国内最新版的android系统应用开发, 学习例子还不错,讲解再深入些就更好了


android出来这么长时间了,这本书算是总结了android应用开发必备的一些基础知识,看了受益匪浅。


书本质量不错,内容全面,主打应用开发,适合入门。


一直想找一般能够与源码结合的应用开发的书,这本不错,可以提高对应用开发过程中更深层次的思考


书不错,源代码下载繁琐。


需要有一点基础,再看这本书,算是进阶的书


有书有光碟,里面的视频和案例蛮实用的


基本特点都较详细


比较难懂,要有点基础。否则难看懂


很不错的书,就是里面没有实例,有实例更好理解


超实惠,买的是时候是最低的打折价,还可以满减,给公司买的,实用有待评定


喜欢 易懂 不错 案例写得很生动


有广告效应,但是希望有所帮助


包装不错,所以书中,就包装不错,封胶了的,没有损坏


不错,内容挺全的,值得购买


内容不错,好好学习下。


很不错的书籍,我找了很久才找到这样一本书籍,很适合往深钻的“程序猿”们。


非常有用的~


号还可以吧


快递大叔好可爱


这个商品不错我喜欢这个


送货速度很快,只有当当有货。相比以前机工的书,这次的纸终于有改进了,毕竟太薄就会影响阅读体验。如果想要开发更复杂更强大的Android应用,了解Android底层核心技术是必须的。这本书能满足我的要求,很不错。


这本书很基础,适合刚学Android应用开发的人学习,介绍的知识也很基础,对框架介绍不多。


听说对于初学者来说 稍微有点难 别人托我买的
自己做android的 没有翻看。。。。。


内容相对深入,适合入门实践一段时间之后的读者梳理知识和总结。


整体还不错,内容涉及多但都比较抽象


整体还不错,感觉很多地方讲得还是不够详细,只是点一下。。


书的内容还是不错的,希望版式能丰富一些,不然读起来有些单调


商品不错,感觉纸张还行,挺好的


慢慢读吧,一两遍怕是不够。


刚到货,还没拆封


泛泛翻了一下,还可以


写的还不错,但不适合初学者


上来就讲安卓控件的用法,没有一定基础根本没法用,可以当工具书备查,但用来学习貌似不行


比入门高级点


觉得作者不用心写书,没有太多自己真正的见解在里面,既然是资深的开发者,那还是很希望能给我们后辈提供有些在自己开发过程中新得的东西,而不是就是将开发文档翻译开发文档整理出来,将一些注释翻译成中文而已。总感觉这书好没劲。纯工具书。


内容写的太浅显了,2句话就完事了,一点也不深入,伤心呀!


泛泛而谈的书,没什么深度


确实粗浅且有错误


深入研究一下android的底层


适合有一定开发应用经验的人员


各个地方点到了,就是原创度不够啊


内容还多,但是非常粗浅 价格搞


深入Android应用开发


等的时间蛮长的,但很喜欢本书


相关图书