高性能Android开发技术
作者:张飞
出版时间:2019年版
内容简介
本书从简单到复杂系统地讲解了Android研发所涉及的全面开发技术。内容包括:高级图形图像处理;图形图像渲染的梯度渐变;由静至动的动态拖曳View 及动画,View 高级特性;高级组件开发;桌面部件App Widget;OKHttp一揽子网络技术解决方案;图片加载利器Glide;高阶Java多线程在Android中的运用;大数据、多任务、断点续断下载管理;内存与物理存储高效缓存及策略;进程间通信之AIDL机制;框架性架构体系;企业级开发ORM 数据库技术;多媒体与图像识别扫描技术;蓝牙网络通信技术;RxJava/RxAndroid脉络清晰的响应式编程;Android DataBinding:MVVM 架构基石,数据驱动App运转;Android NDK 开发技术;Android传感器。本书在技术点编排上循序渐进,侧重培养在实际项目开发中的动手能力;精心选取的关键程序代码,由浅入深地帮助读者快速、直观地深入到代码层面理解和掌握Android高级开发技术。 本书适合Android初学者和需要在Android开发技术方面进阶的中级开发者使用。
目录
第1章 高级图形图像处理…………………………………………………………… 1
1.1 ShapeDrawable、PaintDrawable与 OvalShape、RectShape、ArcShape ………………… 1
1.2 GradientDrawable梯度渐变 ……………………………………………………… 3
1.3 过渡动画的 TransitionDrawable …………………………………………………… 9
1.4 圆形圆角图像 …………………………………………………………………… 10
1.5 ImageView 的setImageLevel和level-list ………………………………………… 13
1.6 红色小圆球样式的新消息提醒 …………………………………………………… 14
1.7 小 结 …………………………………………………………………………… 18
第2章 图形图像渲染的梯度渐变 ………………………………………………… 20
2.1 线性梯度渐变渲染器 LinearGradient……………………………………………… 20
2.2 扫描梯度渐变渲染器SweepGradient……………………………………………… 23
2.3 放射环状梯度渐变渲染器 RadialGradient ………………………………………… 25
2.4 xml配置线性梯度渐变 …………………………………………………………… 26
2.5 xml配置放射状梯度渐变 ………………………………………………………… 31
2.6 xml配置扫描形梯度渐变 ………………………………………………………… 34
2.7 小 结 …………………………………………………………………………… 35
第3章 由静至动的动态拖曳 View及动画 ……………………………………… 36
3.1 alpha:透明渐变属性动画 ………………………………………………………… 36
3.2 rotation:旋转属性动画 …………………………………………………………… 37
3.3 translation:位移属性动画 ………………………………………………………… 38
3.4 scale:缩放属性动画 ……………………………………………………………… 39
3.5 AnimatorSet:属性动画集 ………………………………………………………… 40
3.6 ViewDragHelper:拖曳管控 ……………………………………………………… 42
3.7 小 结 …………………………………………………………………………… 50
第4章 View高级特性 ……………………………………………………………… 51
4.1 横竖屏切换不同尺寸的 View …………………………………………………… 51
4.2 onMeasure控制 View 的大小尺寸 ………………………………………………… 54
4.3 onLayout控制子 View 的空间位置 ……………………………………………… 59
4.4 小 结 …………………………………………………………………………… 63
第5章 高级组件开发 ……………………………………………………………… 65
5.1 Android设备消息通知 …………………………………………………………… 65
5.2 状态栏的通知消息点击触发事件启动后台的 Activity………………………………… 68
5.3 消息通知的自定义布局…………………………………………………………… 69
5.4 WindowManager悬浮窗 ………………………………………………………… 70
5.5 白天/夜间模式标准实现 ………………………………………………………… 72
5.6 小 结 …………………………………………………………………………… 77
第6章 桌面部件 AppWidget……………………………………………………… 78
6.1 桌面部件 AppWidget的简单实现 ………………………………………………… 78
6.2 桌面部件 AppWidget的定制开发 ………………………………………………… 84
6.3 简单音乐播放器的桌面部件 Widget ……………………………………………… 89
6.4 小 结 …………………………………………………………………………… 95
第7章 OkHttp一揽子网络技术解决方案 ………………………………………… 96
7.1 OkHttp异步方式下载 …………………………………………………………… 96
7.2 OkHttp同步方式加载数据 ……………………………………………………… 100
7.3 OKHttp的post上传 …………………………………………………………… 101
7.4 OkHttp的基本配置 …………………………………………………………… 104
7.6 小 结 ………………………………………………………………………… 110
第8章 图片加载利器 Glide ……………………………………………………… 112
8.1 Glide最简单的网络图片加载方式 ……………………………………………… 112
8.2 Glide加载gif动态图 …………………………………………………………… 113
8.3 Glide占位图placeholder………………………………………………………… 114
8.4 Glide加载图片的特殊效果 ……………………………………………………… 115
8.5 Glide内存缓存和硬盘缓存 ……………………………………………………… 121
8.6 小 结 ………………………………………………………………………… 123
第9章 高阶Java多线程在 Android中的运用 ………………………………… 124
9.1 多线程技术概述 ………………………………………………………………… 125
9.2 Java线程池 ThreadPoolExecutor………………………………………………… 126
9.3 Java线程池的调度ScheduledThreadPoolExecutor ……………………………… 129
9.4 Future、Callable类获得线程返回结果 …………………………………………… 131
9.5 FutureTask线程类详解 ………………………………………………………… 134
9.6 Java线程安全的 LinkedBlockingQueue类和 ConcurrentLinkedQueue类 …………… 136
9.7 小 结 ………………………………………………………………………… 139
第10章 大数据、多任务、断点续传下载管理 …………………………………… 140
10.1 DownloadManager开发简介 …………………………………………………… 140
10.2 DownloadManager下载状态查询 ……………………………………………… 145
10.3 DownloadManager下载进度、存放目录等 ……………………………………… 147
10.4 DownloadManager下载完成事件监听…………………………………………… 148
10.5 小 结 ………………………………………………………………………… 150
第11章 内存与物理存储高效缓存及策略 ……………………………………… 152
11.1 引入 LruCache内存缓存技术的背景 …………………………………………… 152
11.2 内存 LruCache缓存及算法的策略思想 ………………………………………… 153
11.3 二级缓存 LruCache和 DiskLruCache …………………………………………… 159
11.4 DiskLruCache缓存读写操作具体过程 ………………………………………… 162
11.5 小 结 ………………………………………………………………………… 165
第12章 进程间通信之 AIDL机制 ……………………………………………… 166
12.1 进程间通信概述 ……………………………………………………………… 166
12.1.7 信号量 …………………………………………………………………… 169
12.1.8 套接字 …………………………………………………………………… 170
12.2 进程间通信 …………………………………………………………………… 170
12.2.1 进程间通信 AIDL之服务器端 …………………………………………… 171
12.2.2 进程间通信 AIDL之客户端 ……………………………………………… 173
12.3 进程间通信 AIDL之双向通信 ………………………………………………… 175
12.4 小 结 ……………………………………………………………………… 179
第13章 框架性架构体系 ………………………………………………………… 180
13.1 EventBus:灵活轻便的跨域消息通信 …………………………………………… 180
13.2 Lifecycle:从生命周期中解放出来 ……………………………………………… 184
13.3 Android运行时权限 …………………………………………………………… 187
13.4 小 结 ………………………………………………………………………… 192
第14章 企业级开发 ORM 数据库技术 ………………………………………… 194
14.1 ORMLite数据库环境搭建 ……………………………………………………… 194
14.2 ORMLite数据库应用开发 ……………………………………………………… 195
14.3 ORMLite的外键关联映射 ……………………………………………………… 200
14.4 Android平台上的greenDAO 关系数据库 ……………………………………… 205
14.5 greenDAO 关系映射模型 ……………………………………………………… 213
14.6 小 结 ………………………………………………………………………… 218
第15章 多媒体与图像识别扫描技术 …………………………………………… 219
15.1 Android二维码/条形码技术方案综述 ………………………………………… 219
15.2 Android二维码/条形码技术开发实践 ………………………………………… 220
15.3 SurfaceView 简介与实例 ……………………………………………………… 223
15.4 TextureView 与SurfaceTexture实现相机拍照 ………………………………… 226
15.5 TextureView 与 MediaPlayer实现视频播放 …………………………………… 231
15.6 小 结 ………………………………………………………………………… 233
第16章 蓝牙网络通信技术 ……………………………………………………… 235
16.1 发现蓝牙设备 ………………………………………………………………… 236
16.2 PairedBluetoothDevices:蓝牙设备配对 ………………………………………… 241
16.3 蓝牙设备连接的建立…………………………………………………………… 243
16.4 蓝牙设备之间的数据传输 ……………………………………………………… 247
16.5 手机端通过蓝牙发送文件到电脑端 …………………………………………… 252
16.6 小 结 ………………………………………………………………………… 260
第17章 RxJava/RxAndroid脉络清晰的响应式编程 …………………………… 261
17.1 RxJava/RxAndroid技术概论 …………………………………………………… 261
17.2 intervalRange与interval间隔、周期性地发射数据流 …………………………… 264
17.3 map和flatMap操作符 ………………………………………………………… 266
17.4 zip、merge和concat操作符 …………………………………………………… 269
17.5 scan和filter操作符 …………………………………………………………… 272
17.6 take、skip和takeLast操作符 …………………………………………………… 275
17.7 ofType根据类型选择输出结果 ………………………………………………… 277
17.8 distinct与distinctUntilChanged操作符 ………………………………………… 279
17.9 doAfterNext和doOnNext接力链式操作 ……………………………………… 280
17.10 buffer缓冲操作符 …………………………………………………………… 282
17.11 retry错误重试 ……………………………………………………………… 285
17.12 小 结 ……………………………………………………………………… 288
第18章 AndroidDataBinding:MVVM 架构基石,数据驱动 App运转 ……… 289
18.1 AndroidDataBinding概述 ……………………………………………………… 289
18.2 初识 AndroidDataBinding……………………………………………………… 291
18.3 notifyPropertyChanged:动态更新数据 ………………………………………… 295
18.4 @=操作符双向绑定…………………………………………………………… 298
18.5 数据绑定的 BindingAdapter适配器 …………………………………………… 299
18.6 BindingMethods可实现 BindingAdapter功能 …………………………………… 301
18.7 基于InverseBindingAdapter实现双向绑定之反向绑定 ………………………… 302
18.8 基于InverseBindingMethods实现双向绑定之反向绑定 ……………………………… 308
18.9 基于 BindingAdapter与InverseBindingAdapter实现SeekBar双向绑定…………… 310
18.10 基于InverseBindingMethods实现SeekBar双向绑定 ……………………………… 313
18.11 AndroidDataBinding技术在传统ListView中的运用………………………………… 315
18.12 AndroidDataBinding技术在 RecyclerView中的运用 ……………………………… 317
18.13 AndroidDataBinding的 Lambda表达式 ……………………………………… 318
18.14 小 结 ……………………………………………………………………… 320
第19章 AndroidNDK 开发技术 ………………………………………………… 321
19.1 JavaJNI技术简介……………………………………………………………… 321
19.2 AndroidNDK 开发环境配置 …………………………………………………… 323
19.3 AndroidStudio自动生成的 NDK工程代码结构分析 ……………………………… 325
19.4 自定义实现 Android的 NDK 库 ………………………………………………… 328
19.5 小 结 ………………………………………………………………………… 332
第20章 Android传感器 ………………………………………………………… 333
20.1 Android传感器开发概述 ……………………………………………………… 334
20.2 Android线性加速度传感器 …………………………………………………… 335
20.3 Android近距离传感器 ………………………………………………………… 338
20.4 Android压力传感器 …………………………………………………………… 340
20.5 Android光强传感器 …………………………………………………………… 341
20.6 Android方位传感器 …………………………………………………………… 342
20.7 Android运动计步传感器 ……………………………………………………… 345
20.8 小 结 ………………………………………………………………………… 346
参考文献 …………………………………………………………………………… 348
书籍下载: