你是否从事Android操作系统开发,会创建简单的Android应用,但想进一步提升自己的开发技巧?你是否想深入挖掘Android操作系统的特性与功能,挑战现有开发水准?你是否正在想方设法创建高级、直观、创新的Android应用?毫无疑问,这本书适合你。
本书从自定义视图、多点触摸手势讲起,到集成在线Web服务,进一步扩展到探索地理围栏和活动识别等新技术。作为一名经验丰富的Android工程师,Erik Hellman通过本书深入剖析了一些专业技巧、诀窍、容易绊倒开发者的陷阱,以及一些鲜为人知的技术:
优化组件,以实现尽可能流畅的用户体验
创建自定义视图
全面理解Android SDK
掌握Android Studio和Gradle
使用Android音频、视频和图形API
文本转语音以及语音识别项目
充分利用新的Android位置API
使用Android连接技术与远程设备通信
执行后台处理
使用Android加密API
找到并安全使用隐藏API
使用Google Play Service为应用启用云计算
在Google Play Store中发布和销售应用
第一部分 构建更好的基础
第1章 完善开发环境2
1.1 可供选择的操作系统2
1.2 Android SDK进阶2
1.2.1 adb工具3
1.2.2 用Monkey对应用UI做压力测试5
1.2.3 在Android上使用Gradle构建系统6
1.2.4 用ProGuard优化和混淆代码9
1.3 Android库项目以及第三方库9
1.3.1 使用JAR库9
1.3.2 创建库项目10
1.4 版本控制和源代码管理11
1.5 熟练使用IDE13
1.5.1 调试Android应用14
1.5.2 使用lint做静态代码分析15
1.5.3 重构代码18
1.6 Android设备上的Developer选项20
1.7 小结22
1.8 延伸阅读22
第2章 在Android上编写高效的Java代码23
2.1 比较Android上的Dalvik Java和
Java SE23
2.2 优化Android上的Java代码25
2.2.1 Android上的类型安全枚举26
2.2.2 Android中增强版的for循环27
2.2.3 队列、同步和锁28
2.3 管理和分配内存30
2.4 Android中的多线程33
2.4.1 Thread类34
2.4.2 AsyncTask35
2.4.3 Handler类36
2.4.4 选择合适的线程41
2.5 小结41
2.6 延伸阅读42
第二部分 充分利用组件
第3章 组件、清单及资源44
3.1 Android组件44
3.1.1 Activity44
3.1.2 Service45
3.1.3 BroadcastReceiver45
3.1.4 ContentProvider46
3.1.5 Application46
3.1.6 应用架构48
3.2 应用程序清单49
3.2.1 manifest元素49
3.2.2 Google Play过滤器和权限50
3.2.3 application节点元素51
3.2.4 组件元素和属性52
3.2.5 Intent过滤53
3.3 resources和assets55
3.3.1 高级string资源55
3.3.2 本地化57
3.3.3 使用资源限定符58
3.3.4 使用assets59
3.4 小结59
3.5 延伸阅读60
第4章 Android用户体验和界面设计61
4.1 用户故事61
4.2 Android UI设计62
4.2.1 导航63
4.2.2 用户界面原型63
4.3 Android用户界面元素64
4.4 Android应用程序文本65
4.4.1 字体65
4.4.2 文本布局65
4.5 尺寸和大小66
4.5.1 推荐尺寸66
4.5.2 图标大小67
4.5.3 字体大小67
4.6 颜色68
4.7 图像和图标69
4.7.1 典型透视69
4.7.2 几何离子70
4.7.3 人脸识别70
4.8 可用性71
4.9 用户奖励机制71
4.10 小结73
4.11 延伸阅读73
第5章 Android用户界面操作75
5.1 Activity和Fragment75
5.2 使用多个屏幕77
5.3 设计自定义视图79
5.3.1 View的生命周期79
5.3.2 钢琴键盘部件80
5.4 多点触控85
5.4.1 PointerCoordinates87
5.4.2 旋转手势87
5.5 OpenGL ES89
5.6 小结90
5.7 延伸阅读90
第6章 Service和后台任务91
6.1 何时以及如何使用Service91
6.2 理解Service生命周期92
6.2.1 Service的创建和销毁92
6.2.2 启动Service92
6.2.3 绑定Service94
6.2.4 保持活跃96
6.2.5 停止Service97
6.3 在后台运行99
6.3.1 IntentService99
6.3.2 并行执行100
6.4 和Service通信103
6.4.1 使用Intent进行异步消息传递103
6.4.2 本地绑定的Servcie104
6.5 小结107
6.6 延伸阅读108
第7章 Android IPC109
7.1 Binder简介109
7.1.1 Binder地址110
7.1.2 Binder事务111
7.1.3 Parcel112
7.1.4 link to death114
7.2 设计API114
7.2.1 AIDL115
7.2.2 Messenger119
7.2.3 使用库工程包装API122
7.3 保护远程API125
7.4 小结126
7.5 延伸阅读126
第8章 掌握BroadcastReceiver以及配置更改127
8.1 BroadcastReceiver128
8.1.1 本地BroadcastReceiver129
8.1.2 普通广播和有序广播130
8.1.3 粘性广播132
8.1.4 定向广播132
8.1.5 启用和禁用广播接收器133
8.1.6 系统广播Intent133
8.2 设备配置更改137
8.3 小结137
8.4 延伸阅读138
第9章 数据存储和序列化技术139
9.1 Android持久化选项139
9.2 在偏好文件中存储数据140
9.3 用户选项和设置用户界面142
9.4 高性能ContentProvider144
9.4.1 Android数据库设计144
9.4.2 创建和升级数据库145
9.4.3 实现查询方法147
9.4.4 数据库事务149
9.4.5 在ContentProvider中存储二进制数据150
9.5 序列化数据152
9.5.1 JSON152
9.5.2 使用Gson进行高级JSON处理154
9.5.3 Google Protocol Buffer156
9.6 应用数据备份159
9.7 小结160
9.8 延伸阅读160
第10章 编写自动化测试162
10.1 Android测试原则162
10.1.1 测试内容163
10.1.2 基本的单元测试163
10.1.3 测试Activity165
10.1.4 测试Service167
10.1.5 测试ContentProvider168
10.1.6 运行测试171
10.2 持续集成172
10.3 小结173
10.4 延伸阅读173
第三部分 超越极限
第11章 高级音频、视频及相机应用176
11.1 高级音频应用176
11.1.1 低延迟音频176
11.1.2 OpenSL ES179
11.1.3 文字转语音183
11.1.4 语音识别184
11.2 使用OpenGL ES 2.0处理视频186
11.3 使用OpenGL ES 2.0处理相机190
11.4 多媒体编码192
11.5 小结196
11.6 延伸阅读196
第12章 Android应用安全问题197
12.1 Android安全的概念197
12.1.1 签名和密钥197
12.1.2 Android权限198
12.1.3 保护用户数据199
12.1.4 验证调用应用200
12.2 客户端数据加密201
12.2.1 Android的加密API201
12.2.2 生成密钥201
12.2.3 加密数据202
12.2.4 解密数据202
12.2.5 处理加密数据203
12.3 Android的钥匙链管理204
12.4 设备管理API208
12.5 小结211
12.6 扩展阅读212
第13章 地图、位置和活动API213
13.1 融合位置管理器213
13.2 集成Google Maps v2214
13.3 使用Google Maps216
13.3.1 地图标记217
13.3.2 绘制圆形区域218
13.3.3 绘制多边形219
13.3.4 有用的位置API工具220
13.3.5 地理编码221
13.4 使用LocationClient222
13.5 地理围栏223
13.6 活动识别225
13.7 小结227
13.8 延伸阅读228
第14章 本地代码和JNI229
14.1 关于CPU体系结构229
14.2 用C语言编写Android应用程序230
14.2.1 Android NDK编译脚本230
14.2.2 本地Activity231
14.3 使用JNI232
14.3.1 从Java调用本地函数232
14.3.2 从本地调用Java方法235
14.4 Android本地API238
14.4.1 C语言库238
14.4.2 本地Android日志238
14.4.3 本地OpenGL ES 2.0238
14.4.4 OpenSL ES中的本地音频239
14.5 移植本地库到Android239
14.6 小结245
14.7 延伸阅读245
第15章 隐藏的Android API246
15.1 官方API和隐藏API246
15.2 发现隐藏API247
15.3 安全地调用隐藏API249
15.3.1 从设备中提取隐藏API249
15.3.2 使用反射调用隐藏API252
15.4 隐藏API示例252
15.4.1 接收和阅读SMS252
15.4.2 Wi-Fi网络共享254
15.4.3 隐藏设置255
15.5 小结256
15.6 延伸阅读256
第16章 深入研究Android平台257
16.1 解锁设备258
16.1.1 刷新出厂映像259
16.1.2 解锁非Nexus设备259
16.1.3 社区支持的固件260
16.2 Android源码260
16.2.1 设置构建环境260
16.2.2 构建并刷新固件261
16.3 编写系统应用262
16.3.1 平台证书262
16.3.2 编写签名的应用263
16.4 探索Android平台265
16.4.1 设置IDE265
16.4.2 Android项目265
16.4.3 Android Linux Kernel267
16.4.4 添加系统服务267
16.4.5 加快平台开发周期270
16.5 为AOSP贡献代码271
16.6 小结273
16.7 延伸阅读273
第17章 网络、Web服务和远程API274
17.1 Android上的网络调用274
17.1.1 HttpUrlConnection275
17.1.2 Volley278
17.1.3 OkHttp和SPDY280
17.1.4 Web Socket281
17.2 集成Web服务285
17.2.1 Google Static Maps v2285
17.2.2 使用OAuth2访问Foursquare API286
17.2.3 在Android中使用Facebook SDK290
17.2.4 寻找在线Web服务和API294
17.3 网络和功耗294
17.3.1 一般准则295
17.3.2 高效的网络轮询296
17.3.3 服务器端推送297
17.4 小结299
17.5 延伸阅读299
第18章 与远程设备通信300
18.1 Android中的连接技术300
18.2 Android USB301
18.3 蓝牙低功耗303
18.4 Android Wi-Fi306
18.4.1 服务发现306
18.4.2 Wi-Fi Direct308
18.5 设备上的Web服务311
18.5.1 使用Restlet创建RESTful API311
18.5.2 Web Socket服务器315
18.6 小结317
18.7 延伸阅读317
第19章 Google Play Service318
19.1 授权318
19.2 Google Drive应用程序数据321
19.3 Google Cloud Endpoint324
19.4 谷歌云消息327
19.5 Google Play Game Service331
19.5.1 数据消息333
19.5.2 消息策略334
19.6 小结335
19.7 延伸阅读336
第20章 在Google Play Store发布应用337
20.1 应用内付费338
20.1.1 消费产品340
20.1.2 应用内订阅340
20.2 在应用内添加广告341
20.2.1 定位广告342
20.2.2 广告颜色343
20.2.3 插播式广告343
20.3 应用程序许可344
20.4 APK扩展文件345
20.4.1 创建扩展文件346
20.4.2 下载扩展文件346
20.5 小结348
20.6 延伸阅读348
阿列克西的著作探讨的主要问题是如法律裁决之类的规范性陈述如何以理性的方式证立。阿列克西将规范性陈述的证立过程看作实践商谈
《世界文明孤独史(上下册)》内容简介:本书旨在探索世界诸文明包括华夏文明的根源,凭借史前灵知体系(包括灵知义理、灵知神话、
先进遗传算法及其工程应用 内容简介 本书以遗传算法基本理论为基础, 依据近年来该算法的发展现状, 对其数学基础理论、算法设计方法及其工程应用进行系统研究和全面总...
《目标跟踪中的群智能优化方法》内容简介:全书内容分为9章,系统地介绍了群智能优化方法的发展及其在目标跟踪中的应用,包括基于标
《跟杨澜学做完美女人》内容简介:《跟杨澜学做完美女人》内容简介::精彩杨澜,在很多女人眼里,她是幸福的,也是幸运的。她几乎拥
《你若坚强,岁月无恙》内容简介:《你若坚强岁月无恙》由SS大小姐著,讲述的是:刚毕业的女生杨时敏,毅然选择去厦门这个充满传奇
Android开发与实战 本书特色 计算机便携化是未来的发展趋势,而android作为*受欢迎的手机和平板电脑的操作系统之一,从其诞生到现在的短短几年里,...
C与.NET3.0高级程序设计(特别版) 本书特色 Amazon超级畅销书,C#圣经级著作,全面涵盖C#3.0和.NET 3.0平台,包括LINQ、WPF、WC...
《第三种创新》的作者罗伯托•维甘提是创新管理权威专家,米兰理工大学管理学院与设计学院教授,关于意大利设计管理的研究荣获意
《明亮的泥土:颜料发明史(天际线丛书)》内容简介:每位艺术家,都与他那个时代的颜色有一份属于自己的约定。一部揭示艺术、科学
《突破现实的困境》内容简介:本书讲述了如何采取重大举措提升企业战略的成功概率。本书以几千家企业的“硬数据”为基础,指出哪些
《所思不远》内容简介:本书为知·趣丛书之一种。作者选取朱彝尊、陈维崧、纳兰容若、王昙、金礼赢、黄仲则、龚自珍、谭嗣同、吴保
《STM32开发实战:LabVIEW卷》内容简介:作为学习LabVIEW与32位微处理器STM32的入门级教材,本书从LabVIEWforARM嵌入式软件架构入...
IfyoureanexperiencedPythonprogrammer,HighPerformancePythonwillguideyouthroughthe...
本书介绍社会工程实践中的基本技能——如何了解别人真正想表达的内容,具体内容包括:非语言交流是如何运作的,手部、躯干、腿脚
消费者主权的崛起推动了一场巨大的零售革命,这就是第三次零售革命。它将引领人类的新商业文明和全球经济增长的模式,不管是传统
互联网接入服务现状及管理对策研究 本书特色这是一部全面系统探讨互联网接入服务现状及管理对策的研究专著。佟力强编写的《互联网接入服务现状及管理对策研究》从介绍互联...
《华杉讲透《论语》:修订版(全2册)》内容简介:华杉先生精研《论语》30多年,综合了朱熹、王阳明、张居正等先贤的经典阐释,用4
现在,告诉您一个奇迹,让您体验一位绘画大师的创作快乐和真谛。在“300年前”的一个小小的快乐镇里,衣冠楚楚的绅士驾着十八世纪
《新四书与新儒学》内容简介:儒家的仁义思想不只是由仁而义,还包括由义而仁,前者是孟子的“居仁由义”,是由道德而政治,后者是