内容简介
本书收集了约20个关于高级Android开发的进阶实例,这些实例都是对在日常开发中遇到的问题的抽象,涉及整个Android开发的各个技术栈。本书从常见的问题入手,引导读者逐步地掌握进阶的各个实例,同时提供分析和解决问题的思考过程,寻求*方案。本书的内容分为以下几个部分。进阶基础:通过管中窥豹,剖析Activity和View的一些基本概念,展示源码分析的常见方法;高阶控件:讲解MD的两个复合布局和约束布局,介绍高级控件的开发流程;项目架构:架构是项目的骨骼,该部分介绍主流的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 startActivity34
1.3 深入剖析View的工作流程36
1.3.1 装饰视图和MeasureSpec38
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与SVG231
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
文档截图