Android高效进阶:从数据到AI
  • 推荐3
  • 收藏1
  • 浏览534

Android高效进阶:从数据到AI

胡强 (作者)  付睿 (责任编辑)

  • 书  号:978-7-121-37206-3
  • 出版日期:2019-09-01
  • 页  数:292
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:付睿
本书是一本Android进阶技术与实践应用相结合的书籍,主要从3个方面来组织内容。第一个方面,Android工程构建体系实践与进阶,其中不仅包含了移动数据技术、工具基建进阶、效能进阶,还包含了工具应用进阶、工程构建进阶等内容;第二个方面,对当前移动端前沿技术的探索,包含容器技术、大前端技术和AI技术;第三个方面,移动应用的安全攻防技术和设计模式进阶实践。本书内容全面,侧重实战经验和进阶技能,通过本书不仅能学到最新的移动端技术,以及进阶技术与实践应用相结合的知识,更重要的是能领悟到作者对技术的钻研精神和思维方式,从而帮助Android开发者高效进阶。
本书适合移动应用开发者、Android系统开发人员、Android系统安全工程师,以及Android领域的移动技术负责人阅读。
这是一本Android进阶技术与实践应用相结合的书籍,从底层的移动数据技术到前沿的AI技术都有介绍,内容全面,可以帮助移动开发者高效进阶。
胡强(花名:得塔),阿里巴巴高级无线技术专家(P8),进入互联网行业已10年,先后从事过前端、后端、大数据和移动互联网的架构及研发工作。2014年加入阿里巴巴至今,专注于移动互联网技术,先后主导了UC和豌豆荚的架构设计,并先后应邀在GMTC、云栖大会、架构师私享会、GeekPwn和Google Lab等上进行过技术演讲和交流。
前言

2008年,Google在I/O大会上发布了Android 1.0版本,到现在已经过去了十多个年头,当前市面上Android的主流版本是Android P(9.0),而Android Q(10.0)很快也将全面铺开。目前,无论在国际市场还是国内市场上,Android都是移动端操作系统的绝对霸主。据统计,目前Android手机的市场份额已经超过了手机整体市场份额的90%。Android能够迅猛发展,除了得益于其成熟的生态,更是因为其具有能够吸引用户的优良性能表现。Android的发展也大大带动了国内移动互联网行业的发展,每天都有新的App产生,国内的IT行业发展也走在了时代前列。
当前市面上讲解Android技术的书籍特别多,从基本的语法应用到深层的内核原理都有,其中不乏经典图书,但介绍Android进阶技术(尤其是结合应用实践)的图书并不是很多。而本书重点讲解了Android平台下的各项进阶技术及其应用实践,希望本书能让具备一定基础的读者更深入地了解Android的进阶技术,同时通过实际案例进行理解。在移动场景下,未来的技术必然是朝精细化、无界化和智能化方向发展的,因此我决定以Android为引,将自己多年的无线端从业技术经验进行总结,编写为本书。
内容导读
本书主要以移动数据技术、工具效能技术、混合前端技术、AI技术、移动安全攻防技术和设计模式为主来讲解Android平台下的高效移动技术进阶。
第1章 Android数据技术:任何App的开发一定是数据先行,数据指导工作的,本章主要从数据采集、数据绑定、数据存储和前端埋点等方面来讲解Android平台下的数据技术。
第2章 Android下的工具基建进阶:主要从下载技术、沉浸式交互、图片加载框架、进程、文件系统扫描和前置通道等方面详解Android下的工具基建进阶技术。这些工具技术虽然看似普通,但真正用好它们却需要对Android有很深入的了解。
第3章 Android下的效能进阶:主要从App的自动化性能监测、真机检测系统和APK信息一站式修改等方面来讲解Android平台下的效能进阶。在App发展到一定阶段后,必然需要进行效能进阶,本章详细说明了我们常见的性能监测、真机检测技术以及App修改。
第4章 Android工具应用进阶:主要从Android工具应用层面,以游戏加速器、近场传输、微信清理和Google安装器为例来说明与工具应用进阶相关的技术。要开发这些应用,开发者不仅需要有过硬的Android技术,还需要有对相关业务的深入理解。
第5章 Android工程构建进阶:主要从工程构建方面来讲解与Android工程相关的构建技术,如我们常见的多渠道自动打包和自动定制化构建等。
第6章 移动场景下的容器技术:主要从几种不同的业界方案(如MoveToDex、MultiDex等)来讲解Android平台容器化技术的发展,以及Android原生容器化技术的发展。
第7章 移动混合前端技术:主要讲解大前端技术,分别从H5、React Native/Weex和Flutter等方面来展开讲解。大前端技术发展至今,国内、国外都有不同的解决方案,但本质上都是围绕效率和体验发展的。
第8章 移动场景下的AI技术:主要讲解移动场景下的AI技术发展,对业界常用的移动AI框架(如Caffe2和TensorFlow Lite)进行了比较说明,同时还对其具体应用实践进行了讲解。
第9章 移动场景下的安全攻防技术:主要讲解移动场景下的安全攻防技术,分别从静态分析和动态分析两个角度来讲解如何进行安全攻防。
第10章 Android平台下的设计模式进阶:主要从SOLID设计原则、并行程序设计模式,以及设计模式在Android源码中的应用等方面来讲解设计模式在移动场景下的进阶与应用实践。
要想对书中所述的内容有深刻的认识,读者需要具备一定的Android技术基础和应用层业务经验。本书主要针对Android进阶技术与应用实践,不会对相关技术原理做过多的解读,因此若读者还不具备这些知识的话,建议先打好基础后再阅读本书。
目标读者
移动应用开发者、Android系统开发人员、Android系统安全工程师,以及Android领域的移动技术负责人。
本书约定
为了使书中讲述的内容更容易理解,本书做了如下约定。
本书在讲解部分内容时,可能会对Android系统源码加以引用。
本书不提供Android系统源码的下载方法,并假定读者已经自行下载了。
本书在引用Android系统源码时,为了避免占用过多篇幅,在不影响理解的情况下,对部分源码进行了删减。
致谢
首先,要感谢本书的编辑付睿女士。在我编写本书时,付睿女士提供了很多意见和建议,并多次耐心指导我写作技巧,她还对书稿质量进行了严格把关。
然后,感谢我的妈妈黄继兰女士,感谢我的老婆旷凌云女士,以及我的两个宝贝(Mary和钧宝),他们给了我很多鼓励,因为有他们,我才能克服困难,坚持下来。
第一次写作,其间遇到了很多困难,工作本来已经很辛苦,工作外基本没多少时间用来写作,在这个过程中,感谢支持与关心我的各位朋友,他们给了我很多启发,谢谢他们!
另外,感谢那些Android大牛,因为他们的前期分享与奉献,我才能站在巨人的肩膀上分享和总结我的经验。
最后,感谢那些关注本书,为本书提过意见的朋友们,他们的支持是我写作本书最大的动力。
此外,虽然我对书中所述内容进行了多次校对,但因时间有限和水平所限,书中难免存在疏漏和错误,敬请广大读者批评指正,可以发邮件到alhuu555@hotmail.com联系我。

胡强(得塔)
2019年6月12日

目录

目录


第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

读者评论

  • 书挺不错,很全面,也很好地进行了理论与实践结合,是难得的一本好的移动技术书籍,强烈点赞@博文视点能出一本这样的书。

    tpp321发表于 2019/11/6 15:15:41

推荐用户