这书案例都来源于对在平时开发中碰到的难题的抽象性,涉及到全部Android开发的每个技术性栈。
从普遍的难题下手,正确引导用户逐渐地把握升阶的每个案例,一起出示剖析和解决困难的思索全过程,寻找*计划方案。
內容涉及到Activity和View、进阶控件、新项目架构、响应式网站程序编写、作用与动漫、Kotlin与SVG、检测与提升等。
这书搜集了约20个有关高級Android开发的升阶案例,这种案例全是对在平时开发中碰到的难题的抽象性,涉及到全部Android开发的每个技术性栈。这书从普遍的难题下手,正确引导用户逐渐地把握升阶的每个案例,一起出示剖析和解决困难的思索全过程,寻找*计划方案。这书的內容分成下列好多个一部分。升阶基本:根据管中窥豹,分析Activity和View的某些基本要素,展现源代码剖析的普遍方式 ;进阶控件:解读MD的2个复合型合理布局和约束力合理布局,详细介绍高級控件的开发步骤;新项目架构:架构是新项目的人体骨骼,该一部分详细介绍流行的MVP系列产品和Flux架构;响应式网站程序编写:分析响应式网站程序编写三剑客RxJava Dagger Retrofit的不一样特点组成使用说明;作用与动漫:例举若干意见具体开发中的經典案例,包括作用订制和网页页面动漫等;Kotlin与SVG:解读Kotlin计算机语言和SVG图象技术性的若干意见开发方法;检测与提升:详细介绍自动化测试架构的设计构思方式 ,及其提升运用的实用工具。根据对这书的学习培训,用户能够 极大地提高Android开发的工程项目工作能力,进而变成一位及格的高級Android技术工程师,不但在基础理论上有一定的提高,结合实际也可以立即运用。高級Android技术工程师根据对这书的学习培训也可以健全知识结构和技术性栈。
目录
- 第1章 进阶基础 1
- 1.1 深入剖析 Activity 的生命周期 1
- 1.1.1 Activity的生命周期的各种状态 2
- 1.1.2 实例:准备 4
- 1.1.3 实例:因硬件导致的生命周期变化 6
- 1.1.4 实例:页面切换时的生命周期变化 11
- 1.1.5 实例:由系统原因导致的生命周期变化 16
- 1.2 深入剖析Activity的启动模式 20
- 1.2.1 ADB命令 20
- 1.2.2 标准模式 21
- 1.2.3 栈顶复用模式 25
- 1.2.4 栈内复用模式 27
- 1.2.5 单实例模式 32
- 1.2.6 startActivity 34
- 1.3 深入剖析View的工作流程 36
- 1.3.1 装饰视图和MeasureSpec 38
- 1.3.2 测量 39
- 1.3.3 布局 44
- 1.3.4 绘制 45
- 1.4 深入剖析View的动画原理 47
- 1.4.1 默认视图动画 48
- 1.4.2 自定义视图动画 51
- 1.4.3 帧动画 54
- 1.4.4 属性动画 54
- 1.4.5 列表控件 58
- 第2章 高阶控件 62
- 2.1 熟练掌握AppBarLayout的开发技术 62
- 2.1.1 搭建项目框架 63
- 2.1.2 页面设置ViewPager布局 67
- 2.1.3 页面添加AppBarLayout布局 73
- 2.1.4 页面添加AppBarLayout逻辑 76
- 2.1.5 页面添加AppBarLayout动画 81
- 2.2 熟练掌握 CoordinatorLayout的开发技术 85
- 2.2.1 项目框架 86
- 2.2.2 布局设计 86
- 2.2.3 联动逻辑 90
- 2.2.4 图片交互 93
- 2.3 熟练掌握 ConstraintLayout 的开发技术 96
- 2.3.1 工程配置 97
- 2.3.2 约束布局 99
- 2.3.3 链式结构 107
- 第3章 项目架构 110
- 3.1 顶层设计 Android 的工程架构 110
- 3.1.1 MVC架构 111
- 3.1.2 MVP架构 116
- 3.1.3 MVVM架构 120
- 3.2 顶层设计基于Flux的流式架构 124
- 3.2.1 视图 125
- 3.2.2 行为创建器 129
- 3.2.3 调度器 131
- 3.2.4 存储器 133
- 第4章 响应式编程 141
- 4.1 全面解析响应式库RxJava的使用方式 141
- 4.1.1 项目框架 142
- 4.1.2 链式表达式 144
- 4.1.3 流的加工函数 148
- 4.1.4 Lambda表达式 151
- 4.1.5 网络请求 152
- 4.1.6 控件的异步事件 159
- 4.1.7 线程安全 161
- 4.2 全面解析依赖注入库 Dagger 的使用方式 164
- 4.2.1 工程配置 165
- 4.2.2 主页逻辑 166
- 4.2.3 详情逻辑 169
- 4.3 基于响应式编程的网络数据同步及缓存框架 173
- 4.3.1 工程配置 174
- 4.3.2 首页 175
- 4.3.3 数据源 177
- 4.3.4 依赖注入 179
- 4.3.5 无缓存模式 181
- 4.3.6 缓存模式 183
- 第5章 炫酷功能 186
- 5.1 设计与实现朋友圈视频的滚动播放功能 186
- 5.1.1 项目框架 187
- 5.1.2 视频列表 189
- 5.1.3 视频项的适配器 193
- 5.1.4 视频列表项 196
- 5.2 设计与实现基于 DialogFragment 的底部弹窗布局 200
- 5.2.1 首页逻辑 201
- 5.2.2 弹窗样式 202
- 5.2.3 弹窗逻辑 204
- 第6章 精美动画 208
- 6.1 实现页面切换中元素分享的动画效果 208
- 6.1.1 项目框架 208
- 6.1.2 效果显示动画 210
- 6.1.3 预留位置动画 214
- 6.2 实现页面展开中圆形爆炸的动画效果 220
- 6.2.1 首页逻辑 221
- 6.2.2 新页逻辑 223
- 6.2.3 显示动画 226
- 6.2.4 退出动画 229
- 第7章 Kotlin与SVG 231
- 7.1 Kotlin基础教程 231
- 7.1.1 基础部分 232
- 7.1.2 进阶部分 237
- 7.2 SVG基础教程 241
- 7.2.1 Vector图像 242
- 7.2.2 Vector动画 245
- 7.2.3 第三方Sharp库 249
- 第8章 测试与优化 254
- 8.1 基于Espresso和Dagger的自动化测试框架 254
- 8.1.1 工程配置 255
- 8.1.2 业务逻辑 257
- 8.1.3 功能测试 265
- 8.2 优化内存泄漏与电量消耗的技术框架 272
- 8.2.1 内存泄漏 272
- 8.2.2 电量优化 282