Android高效進階:從數據到AI

Android高效進階:從數據到AI

《Android高效進階:從數據到AI》是2019年電子工業出版社出版的圖書,作者是胡強。

基本介紹

  • 中文名:Android高效進階:從數據到AI
  • 作者:胡強
  • 出版時間:2019年9月
  • 出版社電子工業出版社
  • 頁數:292 頁
  • ISBN:9787121372063 
  • 類別:移動開發
  • 定價:79 元
  • 開本:16 開
  • 裝幀:平裝-膠訂
內容簡介,作者簡介,圖書目錄,

內容簡介

本書是一本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,
第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

相關詞條

熱門詞條

聯絡我們