Android高效进阶:从数据到AI

Android高效进阶:从数据到AI
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2019-09
版次: 1
ISBN: 9787121372063
定价: 79.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 292页
9人买过
  • 本书是一本Android进阶技术与实践应用相结合的书籍,主要从3个方面来组织内容。**个方面,Android工程构建体系实践与进阶,其中不仅包含了移动数据技术、工具基建进阶、效能进阶,还包含了工具应用进阶、工程构建进阶等内容;第二个方面,对当前移动端前沿技术的探索,包含容器技术、大前端技术和AI技术;第三个方面,移动应用的安全攻防技术和设计模式进阶实践。本书内容全面,侧重实战经验和进阶技能,通过本书不仅能学到*新的移动端技术,以及进阶技术与实践应用相结合的知识,更重要的是能领悟到作者对技术的钻研精神和思维方式,从而帮助Android开发者高效进阶。本书适合移动应用开发者、Android系统开发人员、Android系统安全工程师,以及Android领域的移动技术负责人阅读。 胡强(花名:得塔),阿里巴*高级无线技术专家(P8),进入互联网行业已10年,先后从事过前端、后端、大数据和移动互联网的架构及研发工作。2014年加入阿里巴*至今,专注于移动互联网技术,先后主导了UC和豌豆荚的架构设计,并先后应邀在GMTC、云栖大会、架构师私享会、GeekPwn和Google Lab等上进行过技术演讲和交流。 目录
    第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
  • 内容简介:
    本书是一本Android进阶技术与实践应用相结合的书籍,主要从3个方面来组织内容。**个方面,Android工程构建体系实践与进阶,其中不仅包含了移动数据技术、工具基建进阶、效能进阶,还包含了工具应用进阶、工程构建进阶等内容;第二个方面,对当前移动端前沿技术的探索,包含容器技术、大前端技术和AI技术;第三个方面,移动应用的安全攻防技术和设计模式进阶实践。本书内容全面,侧重实战经验和进阶技能,通过本书不仅能学到*新的移动端技术,以及进阶技术与实践应用相结合的知识,更重要的是能领悟到作者对技术的钻研精神和思维方式,从而帮助Android开发者高效进阶。本书适合移动应用开发者、Android系统开发人员、Android系统安全工程师,以及Android领域的移动技术负责人阅读。
  • 作者简介:
    胡强(花名:得塔),阿里巴*高级无线技术专家(P8),进入互联网行业已10年,先后从事过前端、后端、大数据和移动互联网的架构及研发工作。2014年加入阿里巴*至今,专注于移动互联网技术,先后主导了UC和豌豆荚的架构设计,并先后应邀在GMTC、云栖大会、架构师私享会、GeekPwn和Google Lab等上进行过技术演讲和交流。
  • 目录:
    目录
    第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
查看详情