App研发录:架构设计、Crash分析和竞品技术分析

App研发录:架构设计、Crash分析和竞品技术分析

8.2142 评价豆瓣读书
免费试读
¥25.00¥8.99
今日特价截止至:2019-07-25 02:00:00了解详情

作品简介

本书是作者多年App开发的经验总结,从App架构的角度,重点总结了Android应用开发中常见的实用技巧和疑难问题解决方法,为打造高质量App提供有价值的实践指导,迅速提升应用开发能力和解决疑难问题的能力。本书涉及的问题有:Android基础建设、网络底层框架设计、缓存、网络流量优化、制定编程规范、模块化拆分、Crash异常的捕获与分析、持续集成、代码混淆、App竞品技术分析、项目管理和团队建设等。本书以“问题/解决方案”的形式给出疑难问题的解决方案,同时结合示例代码,深入剖析这些实用的编程技巧和模式,旨在帮助移动开发人员和管理人员提高编程效率,改进代码质量,打造高质量的App。

包建强,毕业于复旦大学数学系。先后在多家互联网公司担任无线部门技术总监。在And roid、iOS、WP等多门无线技术中跋涉过,在App的项目管理上也有多年的实践经验。他是微软2008年MVP。曾经翻译出版《.NET探秘MSIL权威指南》,并有一个坚持写了6年的技术客博客:http://jax.cnblOgs.com/

作品目录

  1. 序一
  2. 序二
  3. 序三
  4. 前言
  5. 第一部分 高效App框架设计与重构
  6. 第1章 重构,夜未眠
  7. 1.1 重新规划Android项目结构
  8. 1.2 为Activity定义新的生命周期
  9. 1.3 统一事件编程模型
  10. 1.4 实体化编程
  11. 1.5 Adapter模板
  12. 1.6 类型安全转换函数
  13. 1.7 本章小结
  14. 第2章 Android网络底层框架设计
  15. 2.1 网络低层封装
  16. 2.2 App数据缓存设计
  17. 2.3 MockService
  18. 2.4 用户登录
  19. 2.5 HTTP头中的奥妙
  20. 2.6 本章小结
  21. 第3章 Android经典场景设计
  22. 3.1 App图片缓存设计
  23. 3.2 对网络流量进行优化
  24. 3.3 城市列表的设计
  25. 3.4 App与HTML5的交互
  26. 3.5 消灭全局变量
  27. 3.6 本章小结
  28. 第4章 Android命名规范和编码规范
  29. 4.1 Android命名规范
  30. 4.2 Android编码规范
  31. 4.3 统一代码格式
  32. 4.4 本章小结
  33. 第二部分 App开发中的高级技巧
  34. 第5章 Crash异常收集与统计
  35. 5.1 异常收集
  36. 5.2 异常收集与统计
  37. 5.3 本章小结
  38. 第6章 Crash异常分析
  39. 6.1 Java语法相关的异常
  40. 6.2 Activity相关的异常
  41. 6.3 序列化相关的异常
  42. 6.4 列表相关的异常
  43. 6.5 窗体相关的异常
  44. 6.6 资源相关的异常
  45. 6.7 系统碎片化相关的异常
  46. 6.8 SQLite相关的异常
  47. 6.9 不明觉厉的异常
  48. 6.10 其他情况的异常
  49. 6.11 本章小结
  50. 第7章 ProGuard技术详解
  51. 7.1 ProGuard简介
  52. 7.2 ProGuard工作原理
  53. 7.3 如何写一个ProGuard文件
  54. 7.4 其他注意事项
  55. 7.5 本章小结
  56. 第8章 持续集成
  57. 8.1 版本管理策略
  58. 8.2 使用Ant脚本打包
  59. 8.3 Monkey包的生成
  60. 8.4 自动打包
  61. 8.5 批量打渠道包
  62. 8.6 Android发版流程
  63. 8.7 分类打渠道包
  64. 8.8 灵活切换服务器
  65. 8.9 单元测试
  66. 8.10 本章小结
  67. 第9章 App竞品技术分析
  68. 9.1 竞品分析概述
  69. 9.2 App安装包的结构
  70. 9.3 竞品技术一瞥:开机速度
  71. 9.4 竞品技术二瞥:HTML5页面的打开速度
  72. 9.5 竞品技术三瞥:安装包的大小
  73. 9.6 竞品技术四瞥:性能优化
  74. 9.7 竞品技术五瞥:数据采集工具
  75. 9.8 竞品技术六瞥:热修补
  76. 9.9 竞品技术七瞥:曲径通幽
  77. 9.10 竞品技术八瞥:模块化拆分
  78. 9.11 竞品技术九瞥:第三方SDK
  79. 9.12 竞品技术十瞥:版本策略与App彩蛋
  80. 9.13 本章小结
  81. 第三部分 项目管理和团队建设
  82. 第10章 项目管理决定了开发速度
  83. 10.1 项目管理中的三驾马车
  84. 10.2 优化团队结构,让敏捷流程跑得更快
  85. 10.3 App敏捷开发流程
  86. 10.4 项目经理的百宝箱
  87. 10.5 迭代中的测试工作
  88. 10.6 高层对敏捷流程的干预
  89. 10.7 本章小结
  90. 第11章 日常工作中的问题解决
  91. 11.1 使用二分法排查问题
  92. 11.2 找到能稳定重现问题的人
  93. 11.3 小流量包
  94. 11.4 建立全国范围的测试群
  95. 11.5 如何与用户沟通
  96. 11.6 日志与App性能
  97. 11.7 从新人入职作业入手
  98. 11.8 本章小结
  99. 第12章 无线团队的组建和管理
  100. 12.1 从面试谈起
  101. 12.2 无线团队必备的10份文档
  102. 12.3 一对一沟通
  103. 12.4 每周技术分享
  104. 12.5 代码评审
  105. 12.6 对Android团队Leader的定位
  106. 12.7 Android应用开发所需技能自我评测
  107. 12.8 App开发人员的学习路线
  108. 12.9 本章小结
载入中

热门划线

  1. App缓存只能针对于MobileAPI中GET类型的接口,对于POST不适用。因为GET是获取数据,而POST是修改数据。4 人
  2. 这里说一件非常狗血的事情,就是在我们使用fastJSON后,App四处起火,主要表现为:1)加了符号Annotation的实体属性,一使用就崩溃。2)当有泛型属性时,一使用就崩溃。在调试的时候没事,可是每次打签名混淆包,就会出现上述问题。我们几个开发人员曾经查到晚上十点半,最后才发现是混淆文件缺了以下两行代码导致的:2 人
  3. App一旦被切换到后台,当手机内存不足的时候,就会回收这些全局变量,从而当App再次切换回前台时,再继续使用全局变量,就会因为它们为空而崩溃。2 人
  4. 发送错误日志给服务器。其2 人
  5. 不要把Dialog的show方法和dismiss方法封装到网络底层。网络底层的调用经常是在子线程执行的,子线程是不能操作Dialog、Toast和控件的。2 人
  6. Fresco的原理是,设计了一个Image Pipeline的概念,它负责先后检查内存、磁盘文件(Disk),如果都没有再老老实实从网络下载图片,如图3-1所示,箭头上标记了jpg或bmp格式的,表示2 人
  7. 中有图片2 人
  8. 这时我们就要改写上述代码,预判是否有打电话的权限,以确保不发生崩溃,如下所示:2 人
  9. Android系统在计算当前所需要的DrawingCache大小时,发现这个值超过了系统所提供的最大DrawingCache值,这时会直接返回null。2 人
  10. ViewFlipper引发的血案2 人

喜欢这本书的人也喜欢