高性能Android应用开发
Doug Sillars
王若兰, 周丹红, 夏恩龙, 陈文超, 李欣欣 著
出版时间:2016年10月
页数:220
对于Android App来说,虽然独特巧妙的构思至关重要,但速度、效率和电池管理才是App成功的真正驱动力。本书直面Android App开发中的性能问题,系统介绍App性能优化的方法和工具,旨在帮助Android开发人员正确构建快速、流畅的App,让其能够在近2万种各式Android设备上运行良好。

● 了解性能问题是如何影响App的用户量和留存率的
● 构建Android设备实验室,进行最大限度的UI、功能和性能测试
● 提升App和硬件设备的交互方式
● 优化UI,使其能够快速进行渲染、滚动以及动画
● 跟踪内存泄漏和对性能有影响的CPU问题
● 升级App同服务器的通信,了解慢速网络条件下如何加强App体验
● 应用RUM工具监控以确保每一个设备都拥有最佳的用户体验

“这本书将使得任何Android开发者都能够构建高效、运行良好的App。”
——Brad Zeschuk
M2Catalyst公司工程副总裁
“本书是Android性能方面的权威实战指南,可以帮助工程师转换视角。书中不仅涵盖了基本的算法话题,还深入到了硬件和平台的工作方式,让你了解工具的异常显示是什么含义。”
——Colt McAnlis
资深布道师,Google公司团队主管
  1. 译者序
  2. 前言
  3. 第1章 Android的性能指标
  4. 1.1 性能对用户很重要
  5. 1.1.1 电子商务和性能
  6. 1.1.2 电子商务之外的影响
  7. 1.1.3 性能可以节省基础设备
  8. 1.2 最恶劣的性能影响因素:宕机
  9. 1.2.1 低性能就像持续的宕机
  10. 1.2.2 消费者对性能bug的态度
  11. 1.2.3 智能手机电池寿命:矿井中的金丝雀
  12. 1.3 App性能问题的检测
  13. 1.3.1 模拟测试
  14. 1.3.2 真实用户监测
  15. 1.4 总结 
  16. 第2章 构建Android设备实验室
  17. 2.1 你的用户都在使用什么设备
  18. 2.2 设备特性分布
  19. 2.2.1 屏幕
  20. 2.2.2 SDK版本
  21. 2.2.3 CPU/内存和存储
  22. 2.3 用户使用的网络
  23. 2.4 你的设备不是用户的设备
  24. 2.5 测试
  25. 2.6 创建设备实验室
  26. 2.6.1 你想要花很多钱买设备吗
  27. 2.6.2 我应该购买什么样的设备
  28. 2.6.3 除了手机之外
  29. 2.6.4 Android Open Source Project设备
  30. 2.6.5 其他选择
  31. 2.6.6 其他注意事项
  32. 2.6.7 我的设备实验室
  33. 2.7 总结
  34. 第3章 硬件性能和电池寿命
  35. 3.1 Android的硬件特点
  36. 3.2 少即是多
  37. 3.3 耗电原因
  38. 3.3.1 Android能耗统计文件
  39. 3.3.2 屏幕
  40. 3.3.3 无线设备
  41. 3.3.4 CPU
  42. 3.3.5 其他传感器
  43. 3.3.6 休眠
  44. 3.3.7 WakeLock和Alarm 
  45. 3.3.8 Doze模式
  46. 3.4 基本的电量消耗分析
  47. 3.4.1 详细的App电量消耗分析
  48. 3.4.2 能耗数据和数据流量
  49. 3.4.3 App休眠
  50. 3.5 高级电池监控
  51. 3.5.1 电能统计
  52. 3.5.2 Battery Historian 
  53. 3.5.3 Battery Historian 2.0
  54. 3.6 JobScheduler
  55. 3.7 小结
  56. 第4章 屏幕和UI性能
  57. 4.1 UI性能基准
  58. 4.2 Android上的UI和渲染性能改进
  59. 4.3 创建视图
  60. 4.4 资源缩减
  61. 4.4.1 屏幕的过度绘制
  62. 4.4.2 检测过度绘制
  63. 4.4.3 Hierarchy Viewer中的过度绘制
  64. 4.4.4 过度绘制和KitKat(Overdraw Avoidance)
  65. 4.5 分析卡顿(测量GPU的渲染性能)
  66. 4.6 丢帧 
  67. 4.6.1 Systrace
  68. 4.6.2 Systrace Screen Painting
  69. 4.6.3 Systrace和CPU阻塞渲染
  70. 4.6.4 Systrace更新——2015年Google I/O开发者大会
  71. 4.6.5 第三方工具
  72. 4.7 感知性能
  73. 4.7.1 进度条:优缺点
  74. 4.7.2 动画掩盖加载时间
  75. 4.7.3 即时更新的善意谎言
  76. 4.7.4 提高感知性能的建议
  77. 4.8 小结
  78. 第5章 内存性能
  79. 5.1 Android内存:它是如何工作的
  80. 5.1.1 共享内存与私有内存
  81. 5.1.2 脏内存与干净内存
  82. 5.1.3 内存清理(垃圾回收)
  83. 5.1.4 确定App 使用的内存大小
  84. 5.1.5 procstats 
  85. 5.1.6 Android内存警告
  86. 5.2 Java中的内存管理/泄露
  87. 5.3 追踪内存泄露的工具
  88. 5.3.1 Heap Dump
  89. 5.3.2 Allocation Tracker 
  90. 5.3.3 增加一处内存泄露
  91. 5.3.4 更加深层次的堆解析:MAT和LeakCanary 
  92. 5.3.5 Eclipse内存分析工具——MAT
  93. 5.3.6 LeakCanary 
  94. 5.4 小结
  95. 第6章 CPU与CPU性能
  96. 6.1 检测CPU占用率
  97. 6.2 使用Systrace分析CPU 
  98. 6.3 Traceview(遗留的监视器DDMS工具)  
  99. 6.4 Traceview(Android Studio)
  100. 6.5 其他优化工具
  101. 6.6 小结
  102. 第7章 网络性能
  103. 7.1 Wi-Fi与蜂窝无线电
  104. 7.1.1 Wi-Fi  
  105. 7.1.2 蜂窝
  106. 7.1.3 RRC状态机
  107. 7.2 测试工具
  108. 7.2.1 Wireshark  
  109. 7.2.2 Fiddler  
  110. 7.2.3 MITMProxy  
  111. 7.2.4 AT&T ARO  
  112. 7.2.5 混合型App和WebPageTest org 
  113. 7.3 Android网络优化
  114. 7.3.1 文件优化
  115. 7.3.2 精简文本文件(Souders:精简JavaScript) 
  116. 7.3.3 图片
  117. 7.3.4 文件缓存
  118. 7.3.5 文件之外
  119. 7.3.6 分组连接
  120. 7.3.7 检测应用的无线电使用情况
  121. 7.3.8 适时关闭连接
  122. 7.3.9 定期执行重复的ping命令
  123. 7.3.10 网络安全技术的应用(HTTP和HTTPS) 
  124. 7.4 全球移动网络覆盖范围
  125. 7.4.1 CDN服务器
  126. 7.4.2 在慢速网络中测试App 
  127. 7.4.3 仿真慢速网络而不用倾家荡产
  128. 7.4.4 构建网络感知App  
  129. 7.4.5 计算延迟
  130. 7.4.6 最后一英里的延迟
  131. 7.4.7 其他无线电
  132. 7.4.8 GPS 
  133. 7.4.9 蓝牙
  134. 7.5 小结
  135. 第8章 真实用户监测
  136. 8.1 启用RUM工具
  137. 8.2 RUM分析:示例程序
  138. 8.3 崩溃
  139. 8.3.1 分析Crashlytics的崩溃报告
  140. 8.3.2 使用
  141. 8.3.3 实时信息
  142. 8.4 大数据的营救
  143. 8.5 小结
  144. 附录 组织性能
书名:高性能Android应用开发
作者:Doug Sillars
译者:王若兰, 周丹红, 夏恩龙, 陈文超, 李欣欣 著
国内出版社:人民邮电出版社
出版时间:2016年10月
页数:220
书号:978-7-115-43570-5
原版书书名:High Performance Android Apps
原版书出版商:O'Reilly Media
Doug Sillars
 
Doug Sillars,AT&T开发者计划中的性能推广领导者。他开发的工具和总结
的最佳实践,已经帮助数万名移动开发人员将App运行得更快。