Android高级进阶

Android高级进阶

Android高级研发工程师50个必备技能点

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
5.865 评价豆瓣读书
¥41.30¥24.78
今日特价截止至:2024-06-27 02:00:00了解详情

作品简介

《Android高级进阶》是Android的进阶学习指南,主要为Android初中级开发者进阶所需的知识,高级开发者也可以从本书中发现很多共鸣点。《Android高级进阶》从8个方面对50个知识点进行分类讲解,包括基础篇、系统架构篇、经验总结篇、新技术篇、性能优化篇、移动安全篇、工具篇、测试篇。熟练掌握这些知识点后,应该就能够应付实际项目开发中的绝大部分问题了。

《Android高级进阶》的主要目的在于给读者一个完整的Android中高级开发者知识图谱。笔者希望通过《Android高级进阶》的系统讲解,能够帮助读者在面试和工作中收获自己满意的成绩。

顾浩鑫,网络ID:ASCE1885,平安金融科技移动研发工程师,目前主要从事Android&React Native相关研发工作,毕业于华中科技大学图像识别与人工智能研究所,曾先后就职于华为、百度、平安科技。

作品目录

  1. 内容简介
  2. 前言
  3. 第1篇 基础篇
  4. 第1章 Android触摸事件传递机制
  5. 1.1 触摸事件的类型
  6. 1.2 事件传递的三个阶段
  7. 1.3 View的事件传递机制
  8. 1.4 ViewGroup的事件传递机制
  9. 第2章 Android View的绘制流程
  10. 2.1 绘制的整体流程
  11. 2.2 MeasureSpec
  12. 2.3 Measure
  13. 2.4 Layout
  14. 2.5 Draw
  15. 第3章 Android动画机制
  16. 3.1 逐帧动画(Frame Animation)
  17. 3.2 补间动画(Tween Animation)
  18. 3.3 属性动画(Property Animation)
  19. 3.4 过渡动画(Transition Animation)
  20. 第4章 Support Annotation Library使用详解
  21. 4.1 Nullness注解
  22. 4.2 资源类型注解
  23. 4.3 类型定义注解
  24. 4.4 线程注解
  25. 4.5 RGB颜色值注解
  26. 4.6 值范围注解
  27. 4.7 权限注解
  28. 4.8 重写函数注解
  29. 4.9 返回值注解
  30. 4.10 @VisibleForTesting
  31. 4.11 @Keep
  32. 第5章 Percent Support Library使用详解
  33. 第6章 Design Support Library使用详解
  34. 6.1 Snackbar
  35. 6.2 TextInputLayout
  36. 6.3 TabLayout
  37. 6.4 NavigationView
  38. 6.5 FloatingActionButton
  39. 6.6 CoordinatorLayout
  40. 6.7 CollapsingToolbarLayout
  41. 6.8 BottomSheetBehavior
  42. 第7章 Android Studio中的NDK开发
  43. 7.1 ABI的基本概念
  44. 7.2 引入预编译的二进制C/C++函数库
  45. 7.3 直接从C/C++源码编译
  46. 7.4 使用.so文件的注意事项
  47. 第8章 Gradle必知必会
  48. 8.1 共享变量的定义
  49. 8.2 通用配置
  50. 8.3 aar函数库的引用
  51. 8.4 签名和混淆的配置
  52. 第9章 通过Gradle打包发布函数库到JCenter和Maven Central
  53. 9.1 Maven Central和JCenter
  54. 9.2 Android Studio获取函数库的原理
  55. 9.3 上传函数库到JCenter
  56. 第10章 Builder模式详解
  57. 10.1 经典的Builder模式
  58. 10.2 Builder模式的变种
  59. 10.3 变种Builder模式的自动化生成
  60. 10.4 开源函数库的例子
  61. 第11章 注解在Android中的应用
  62. 11.1 注解的定义
  63. 11.2 标准注解
  64. 11.3 运行时注解
  65. 11.4 编译时注解
  66. 第12章 ANR产生的原因及其定位分析
  67. 12.1 ANR产生的原因
  68. 12.2 典型的ANR问题场景
  69. 12.3 ANR的定位和分析
  70. 12.4 ANR的避免和检测
  71. 第13章 Android异步处理技术
  72. 13.1 Thread
  73. 13.2 HandlerThread
  74. 13.3 AsyncQueryHandler
  75. 13.4 IntentService
  76. 13.5 Executor Framework
  77. 13.6 AsyncTask
  78. 13.7 Loader
  79. 13.8 总结
  80. 第14章 Android数据序列化方案研究
  81. 14.1 Serializable
  82. 14.2 Parcelable
  83. 14.3 SQLiteDatabase
  84. 14.4 SharedPreferences
  85. 14.5 JSON
  86. 14.6 Protocol Buffers及Nano-Proto-Buffers
  87. 14.7 FlatBuffers
  88. 第15章 Android WebView Java和JavaScript交互详解
  89. 15.1 Java调用JavaScript
  90. 15.2 JavaScript调用Java
  91. 第2篇 系统架构篇
  92. 第16章 MVP模式及其在Android中的实践
  93. 16.1 MVP的基本概念
  94. 16.2 MVP与MVC的区别
  95. 16.3 MVP的开源实现
  96. 16.4 MVP的好处
  97. 16.5 MVP存在的问题
  98. 第17章 MVVM模式及Android DataBinding实战
  99. 17.1 Data Binding表达式
  100. 17.2 数据对象
  101. 17.3 数据绑定
  102. 17.4 事件绑定
  103. 第18章 观察者模式的拓展:事件总线
  104. 18.1 为何要使用
  105. 18.2 原理
  106. 18.3 开源实现
  107. 18.4 与观察者模式及Android广播的区别
  108. 第19章 书写简洁规范的代码
  109. 19.1 Java编码规范
  110. 19.2 Android命名规范
  111. 19.3 CheckStyle的使用
  112. 第20章 基于开源项目搭建属于自己的技术堆栈
  113. 20.1 APP的整体架构
  114. 20.2 技术选型的考量点
  115. 20.3 日志记录能力
  116. 20.4 JSON解析能力
  117. 20.5 数据库操作能力
  118. 20.6 网络通信能力
  119. 20.7 图片缓存和显示能力
  120. 第3篇 经验总结篇
  121. 第21章 64K方法数限制原理与解决方案
  122. 21.1 64K限制的原因
  123. 21.2 使用MultiDex解决64K限制的问题
  124. 21.3 如何避免出现64K限制
  125. 21.4 配置MultiDex
  126. 21.5 MultiDex Support Library的局限性
  127. 21.6 在开发阶段优化MultiDex的构建
  128. 第22章 Android插件框架机制研究与实践
  129. 22.1 基本概念
  130. 22.2 开源框架
  131. 第23章 推送机制实现原理详解
  132. 23.1 推送的开源实现方案
  133. 23.2 推送的第三方平台
  134. 23.3 自己实现推送功能
  135. 第24章 APP瘦身经验总结
  136. 24.1 APP为什么变胖了
  137. 24.2 从APK文件的结构说起
  138. 24.3 优化图片资源占用的空间
  139. 24.4 使用Lint删除无用资源
  140. 24.5 利用Android Gradle配置
  141. 24.6 重构和优化代码
  142. 24.7 资源混淆
  143. 24.8 插件化
  144. 第25章 ndroid Crash日志收集原理与实践
  145. 25.1 Java层Crash捕获机制
  146. 25.2 Native层Crash捕获机制
  147. 25.3 Crash的上报
  148. 第4篇 新技术篇
  149. 第26章 函数式编程思想及其在Android中的应用
  150. 26.1 代码的简化
  151. 26.2 Operators简介
  152. 第27章 依赖注入及其在Android中的应用
  153. 27.1 基本概念
  154. 27.2 为何需要框架
  155. 27.3 开源框架的选择
  156. 第28章 Android世界的Swift:Kotlin在Android中的应用
  157. 28.1 选择Kotlin的原因
  158. 28.2 Kotlin的安装和配置
  159. 28.3 Kotlin语言的特性
  160. 28.4 Kotlin的Gradle配置
  161. 28.5 将Java类转换成Kotlin类
  162. 28.6 相关资料
  163. 第29章 React Native For Android入门指南
  164. 29.1 环境配置
  165. 29.2 Android开发环境的要求
  166. 29.3 React Native工程配置
  167. 29.4 Android Studio工程概览
  168. 29.5 React Native依赖库修改为本地
  169. 29.6 React Native学习建议
  170. 第30章 Android在线热修复方案研究
  171. 30.1 在线热修复的基本流程
  172. 30.2 Dexposed
  173. 30.3 AndFix
  174. 30.4 Nuwa
  175. 30.5 总结
  176. 第31章 面向切面编程及其在Android中的应用
  177. 31.1 AOP的基本概念
  178. 31.2 代码织入的时机
  179. 31.3 基于AspectJ实现Android平台的AOP
  180. 31.4 其他AOP开源框架
  181. 第32章 基于Facebook Buck改造Android构建系统
  182. 32.1 Buck环境配置
  183. 32.2 快速创建基于Buck构建的Android工程
  184. 32.3 Buck的基本概念
  185. 32.4 项目改造实战
  186. 32.5 Buck的自动化改造
  187. 第5篇 性能优化篇
  188. 第33章 代码优化
  189. 33.1 数据结构的选择
  190. 33.2 Handler和内部类的正确用法
  191. 33.3 正确地使用Context
  192. 33.4 掌握Java的四种引用方式
  193. 33.5 其他代码微优化
  194. 第34章 图片优化
  195. 34.1 图片的格式
  196. 34.2 图片的压缩
  197. 34.3 图片的缓存
  198. 第35章 电量优化
  199. 35.1 BroadcastReceiver
  200. 35.2 数据传输
  201. 35.3 位置服务
  202. 35.4 AlarmManager
  203. 35.5 WakeLock
  204. 第36章 布局优化
  205. 36.1 include标签共享布局
  206. 36.2 ViewStub标签实现延迟加载
  207. 36.3 merge标签减少布局层次
  208. 36.4 尽量使用CompoundDrawable
  209. 36.5 使用Lint
  210. 第37章 网络优化
  211. 37.1 避免DNS解析
  212. 37.2 合并网络请求
  213. 37.3 预先获取数据
  214. 37.4 避免轮询
  215. 37.5 优化重连机制
  216. 37.6 离线缓存
  217. 37.7 压缩数据大小
  218. 37.8 不同的网络环境使用不同的超时策略
  219. 37.9 CDN的使用
  220. 第6篇 移动安全篇
  221. 第38章 Android混淆机制详解
  222. 38.1 Java代码的混淆
  223. 38.2 Native(C/C++)代码的混淆
  224. 38.3 资源文件的混淆
  225. 第39章 Android反编译机制详解
  226. 39.1 资源文件的反编译
  227. 39.2 Java代码的反编译
  228. 第40章 客户端敏感信息隐藏技术研究
  229. 40.1 敏感信息嵌套在strings.xml中
  230. 40.2 敏感信息隐藏在Java源代码中
  231. 40.3 敏感信息隐藏在BuildConfig中
  232. 40.4 使用DexGuard
  233. 40.5 对敏感信息进行伪装或者加密
  234. 40.6 敏感信息隐藏在原生函数库中(.so文件)
  235. 40.7 对APK进行加固处理
  236. 第41章 Android加固技术研究
  237. 41.1 爱加密的主要功能
  238. 41.2 常见APP漏洞及风险
  239. 41.3 Android程序反破解技术
  240. 41.4 加固技术研究知识储备
  241. 第42章 Android安全编码
  242. 42.1 WebView远程代码执行
  243. 42.2 WebView密码明文保存
  244. 42.3 Android本地拒绝服务
  245. 42.4 SharedPreference全局任意读写
  246. 42.5 密钥硬编码
  247. 42.6 AES/DES/RSA弱加密
  248. 42.7 随机函数使用错误
  249. 42.8 WebView忽略SSL证书
  250. 42.9 HTTPS证书弱校验
  251. 42.10 PendingIntent使用不当
  252. 第7篇 工具篇
  253. 第43章 Android调试工具Facebook Stetho
  254. 43.1 视图布局监视
  255. 43.2 数据库监视
  256. 43.3 网络监视
  257. 43.4 dumpapp
  258. 43.5 Javascript控制台
  259. 43.6 最佳实践
  260. 第44章 内存泄漏检测函数库LeakCanary
  261. 44.1 基本概念
  262. 44.2 LeakCanary的集成
  263. 44.3 LeakCanary的原理
  264. 44.4 LeakCanary的定制
  265. 第45章 基于Facebook Redex实现Android APK的压缩和优化
  266. 45.1 转换的时机
  267. 45.2 管道的思想
  268. 45.3 减少字节码的意义
  269. 45.4 混淆和压缩
  270. 45.5 使用内联函数
  271. 45.6 无用代码的消除
  272. 45.7 Redex的集成和使用
  273. 第46章 Android Studio你所需要知道的功能
  274. 46.1 Annotate
  275. 46.2 .ignore插件
  276. 46.3 Live Templates
  277. 46.4 集成Bug管理系统
  278. 第8篇 测试篇
  279. 第47章 Android单元测试框架简介
  280. 47.1 Java单元测试框架JUnit
  281. 47.2 Android单元测试框架Robolectric 3.0
  282. 47.3 Java模拟测试框架Mockito
  283. 第48章 Android UI自动化测试框架简介
  284. 48.1 Monkey
  285. 48.2 MonkeyRunner
  286. 48.3 UIAutomator
  287. 48.4 Robotium
  288. 48.5 Espresso
  289. 48.6 Appium
  290. 第49章 Android静态代码分析实战
  291. 49.1 Java代码规范检查工具CheckStyle
  292. 49.2 Java静态代码分析工具FindBugs
  293. 49.3 Java静态代码分析工具PMD
  294. 49.4 Android代码优化工具Lint
  295. 第50章 基于Jenkins+Gradle搭建Android持续集成编译环境
  296. 50.1 Tomcat的下载和启动
  297. 50.2 Jenkins的下载和运行
  298. 50.3 Jenkins插件的安装
  299. 50.4 Jenkins全局配置
  300. 50.5 JOB相关的操作
  301. 50.6 Jenkins预定义的环境变量
载入中