第1章 Android数据技术 1
1.1 数据采集 1
1.1.1 数据格式 1
1.1.2 多端协同技巧 3
1.1.3 数据分级方案 5
1.1.4 多进程解决方案 7
1.2 数据绑定 8
1.2.1 控件数据绑定 8
1.2.2 内容曝光框架 9
1.3 数据存储和上报 10
1.3.1 数据加密方案 11
1.3.2 数据存储策略 11
1.3.3 数据上报策略 14
1.4 前端埋点 15
1.4.1 代码埋点 16
1.4.2 声明式埋点 17
1.4.3 无痕埋点 18
第2章 Android下的工具基建进阶 30
2.1 带有反劫持功能的下载SDK 30
2.1.1 分段式多线程网络通信 30
2.1.2 常见的下载劫持 32
2.1.3 下载劫持监控 32
2.1.4 在下载中实现反劫持 33
2.1.5 下载SDK的应用 34
2.2 沉浸式交互组件 34
2.2.1 碎片化导致沉浸式适配困难 34
2.2.2 Android官方沉浸式状态栏方式 35
2.2.3 主流厂商的沉浸式方式简介 36
2.3 基于信息流的图片加载框架 38
2.3.1 图片加载 38
2.3.2 图片缓存机制 39
2.3.3 图片加载过程中遇到的问题 40
2.3.4 基于信息流的图片加载设计 47
2.3.5 基于信息流的图片加载实现 48
2.4 进程保活 49
2.4.1 常规的保活技术 49
2.4.2 保活的悖论 52
2.4.3 系统发展对保活的影响 53
2.5 Android文件系统扫描 53
2.5.1 什么是文件系统 54
2.5.2 文件系统挂载 54
2.5.3 虚拟文件系统层 56
2.5.4 超级块 57
2.5.5 文件扫描算法 58
2.5.6 结合系统机制进行进阶扫描设计 61
2.5.7 扫描实现设计 62
2.5.8 C语言实现的扫描逻辑 63
2.6 高可用前置通道 64
2.6.1 前置通道简介 64
2.6.2 常驻通知栏 64
2.6.3 Android推送能力介绍 65
2.6.4 主流厂商推送SDK适配 65
2.6.5 Android统一推送联盟 67
2.6.6 桌面悬浮窗 67
第3章 Android下的效能进阶 68
3.1 App性能监测实现 68
3.1.1 App性能监测背景 68
3.1.2 App性能监测总体设计 68
3.1.3 启动速度框架 69
3.1.4 内存监测系统 69
3.1.5 页面卡顿解决方案 70
3.1.6 处理App性能问题的经验 72
3.2 App真机检测系统 75
3.2.1 为什么需要真机检测 75
3.2.2 真机检测整体设计 75
3.2.3 Monkey稳定性检测 76
3.2.4 自动化敏感权限检测 77
3.2.5 面向游戏的真机检测 77
3.3 APK信息一站式修改 79
3.3.1 APK文件构成 79
3.3.2 APK签名校验流程 80
3.3.3 V1与V2签名 82
3.3.4 如何打造渠道包 82
第4章 Android工具应用进阶 86
4.1 游戏加速器 86
4.1.1 游戏加速器的使用场景 86
4.1.2 基于性能的加速实现 86
4.1.3 基于流量劫持(VPN)的加速实现 91
4.1.4 基于VPN加速器的整体设计 93
4.2 近场传输 94
4.2.1 近场传输场景 95
4.2.2 近场传输设计 95
4.2.3 Wi-Fi创建 97
4.2.4 Wi-Fi扫描 99
4.2.5 Wi-Fi连接 100
4.2.6 数据传输逻辑处理 102
4.3 微信清理 103
4.3.1 微信清理背景 103
4.3.2 微信清理设计 103
4.3.3 微信清理实现 103
4.4 Google安装器 105
4.4.1 Google安装器背景 105
4.4.2 Google服务框架 106
4.4.3 Google服务框架安装器GSI实现 108
第5章 Android工程构建进阶 111
5.1 工程构建基础 111
5.1.1 应用基本信息 111
5.1.2 编译过程 112
5.2 工程构建进阶 115
5.2.1 多渠道打包 115
5.2.2 渠道信息批量写入 116
5.2.3 资源混淆 116
5.2.4 发布到Maven仓库 118
5.2.5 搭建私有Maven仓库 120
5.3 工程构建定制 123
5.3.1 认识Gradle DSL 123
5.3.2 自定义打包逻辑 125
5.3.3 Freeline秒级编译浅析及接入 129
第6章 移动场景下的容器技术 133
6.1 MoveToDex方案 134
6.1.1 Dalvik虚拟机dex加载机制 134
6.1.2 方法数超过65 536B问题 136
6.1.3 DexOpt LinearAlloc大小限制问题 139
6.1.4 MoveToDex按需加载方案 140
6.2 MultiDex方案优化 141
6.2.1 如何使用MultiDex 141
6.2.2 MultiDex痛点剖析 142
6.2.3 MultiDex方案回归 143
6.2.4 如何优化MultiDex 144
6.3 插件化与组件化 145
6.3.1 插件化与组件化的区别 145
6.3.2 为什么要做容器化 147
6.3.3 容器化技术演进 147
6.3.4 容器化框架的弊端 150
6.3.5 Android P下的容器化技术前进方向 150
6.3.6 App Bundle解析 151
第7章 移动混合前端技术 153
7.1 H5方案 153
7.1.1 轻量化方案——H5应用 153
7.1.2 H5交互与接口实现 154
7.1.3 H5的缺点 155
7.2 Weex和React Native 155
7.2.1 Weex和React Native简介 156
7.2.2 Weex和React Native的对比 156
7.2.3 如何使用 159
7.3 Flutter 164
7.3.1 Flutter简介 165
7.3.2 Dark语言简介 165
7.3.3 Flutter原理浅析 167
第8章 移动场景下的AI技术 170
8.1 移动AI现状 170
8.1.1 背景 170
8.1.2 移动AI落地方案 172
8.2 AI的应用场景 173
8.2.1 图像处理 173
8.2.2 语音处理 175
8.2.3 模式识别 177
8.3 移动AI框架 177
8.3.1 Caffe2 178
8.3.2 TensorFlow Lite 180
8.3.3 Caffe2与TensorFlow Lite的对比 191
8.4 移动AI业务实践 192
8.4.1 接入成本 192
8.4.2 模型的动态更新 192
8.4.3 兼容性与局限性 194
第9章 移动场景下的安全攻防技术 195
9.1 静态分析Android应用 195
9.1.1 使用ShakaApktool反编译APK 196
9.1.2 使用JEB分析Java代码 197
9.1.3 使用IDA Pro静态分析so文件 203
9.2 动态分析Android应用 207
9.2.1 使用IDA Pro动态调试APK 207
9.2.2 使用Xposed Hook Java代码 211
9.2.3 使用Cydia Substrate Hook Java和Native 219
9.2.4 使用Frida Hook Java和Native代码 228
第10章 Android平台下的设计模式进阶 237
10.1 SOLID设计原则 237
10.1.1 单一职责原则 237
10.1.2 开闭原则 239
10.1.3 里氏替换原则 244
10.1.4 接口隔离原则 246
10.1.5 依赖倒置原则 248
10.2 并行程序设计模式 253
10.2.1 Amdahl定律 253
10.2.2 Future模式 255
10.2.3 Master-Worker模式 256
10.2.4 Guarded Suspension模式 259
10.2.5 不变模式 260
10.3 设计模式在Android源码中的应用 261
10.3.1 策略模式 262
10.3.2 适配器模式 262
10.3.3 命令模式 263
10.3.4 建造者模式 263
10.3.5 享元模式 264
10.3.6 备忘录模式 267
10.3.7 观察者模式 269
10.3.8 原型模式 270
10.3.9 代理模式 271
10.3.10 状态模式 274
· · · · · · (
收起)
0 有用 逍遥一叶 2020-04-09 14:41:20
初步浏览,讲述了10个方面的进阶。
0 有用 Haloboy 2020-04-17 11:23:32
还好,进阶入门书
0 有用 Haloboy 2020-04-17 11:23:32
还好,进阶入门书
0 有用 逍遥一叶 2020-04-09 14:41:20
初步浏览,讲述了10个方面的进阶。