內(nèi) 容 提 要
本書全面講解了成為移動(dòng)應(yīng)用架構(gòu)師必 備的知識(shí),以及需要學(xué)習(xí)的技術(shù),主要內(nèi)容包括App架構(gòu)師成長(zhǎng)路線、App基礎(chǔ)語法系列、App開發(fā)工具系列、App SDK使用系列、開源庫(kù)的選擇和使用、App常用模塊設(shè)計(jì)、App架構(gòu)和重構(gòu)、App質(zhì)量和穩(wěn)定性系列、App性能優(yōu)化系列、App安全逆向系列、App熱門技術(shù)、項(xiàng)目管理、產(chǎn)品思維、設(shè)計(jì)理念、推廣運(yùn)營(yíng)、打造高效團(tuán)隊(duì)、架構(gòu)師思維等綜合技能。
本書適合企業(yè)一線App開發(fā)工程師、程序員、產(chǎn)品經(jīng)理等從業(yè)者閱讀,也適合 作為大專院校相關(guān)專業(yè)師生的學(xué)習(xí)用書和培訓(xùn)學(xué)校的教材。
全面介紹了在移動(dòng)應(yīng)用開發(fā)的架構(gòu)設(shè)計(jì)和性能優(yōu)化方面的知識(shí),是架構(gòu)師的必 備書籍
講述了移動(dòng)應(yīng)用架構(gòu)師需要了解的技能、思想等整體的發(fā)展方向,是移動(dòng)架構(gòu)師成長(zhǎng)的路線圖
讀者不僅可以學(xué)習(xí)到移動(dòng)應(yīng)用的開發(fā)技術(shù),更能收獲到在實(shí)戰(zhàn)項(xiàng)目中會(huì)用到的各種工程化的知識(shí),是架構(gòu)師的學(xué)習(xí)寶典
趙波,研究生,前阿里資 深軟件工程師/圖像算法工程師,擅長(zhǎng)移動(dòng)應(yīng)用和圖像算法開發(fā),在計(jì)算機(jī)視覺,無線互聯(lián)以及軟件測(cè)試生態(tài)鏈工具等多領(lǐng)域有深入研究和較深刻理解。曾在多家創(chuàng)業(yè)公司擔(dān)任技術(shù)顧問和技術(shù)總監(jiān)職位,某知名企業(yè)培訓(xùn)機(jī)構(gòu)企業(yè)內(nèi)訓(xùn)高 級(jí)講師,某在線教育平臺(tái)Android講師,發(fā)表國(guó)家核心期刊3篇,國(guó)家發(fā)明專利22件,國(guó)內(nèi)* 一本NFC書籍《Android NFC開發(fā)實(shí)戰(zhàn)》作者,
目錄
* 一篇 基 礎(chǔ) 篇
* 1章 App架構(gòu)師成長(zhǎng)路線 2
1.1 架構(gòu)師定義 2
1.2 程序員發(fā)展路線 3
1.3 App架構(gòu)師技能矩陣 5
1.3.1 App架構(gòu)師畫布 5
1.3.2 技能圖譜 5
1.4 本章小結(jié) 6
1.5 推薦資料 7
* 2章 App基礎(chǔ)語法系列 8
2.1 編程語言 8
2.1.1 那些年,那些語言 9
2.1.2 聊聊Swift 11
2.1.3 Swift 3和Java 8新特性 13
2.2 面向?qū)ο笏枷?14
2.2.1 編程范式 14
2.2.2 封裝、繼承與多態(tài) 15
2.2.3 內(nèi)部類的使用和思考 17
2.3 線程與進(jìn)程 19
2.4 反射、注解與泛型 21
2.4.1 反射與注解 21
2.4.2 泛型 23
2.5 本章小結(jié) 24
2.6 推薦資料 25
第3章 App開發(fā)工具系列 26
3.1 IDE 26
3.1.1 Android Studio 27
3.1.2 Xcode 29
3.2 編譯調(diào)試 29
3.3 版本管理 31
3.3.1 代碼管理 31
3.3.2 Git分支管理 32
3.4 產(chǎn)品設(shè)計(jì) 34
3.5 程序員珍藏 35
3.5.1 抓包工具 36
3.5.2 ADB 36
3.5.3 Chrome開發(fā)插件 37
3.6 本章小結(jié) 38
3.7 推薦資料 38
第4章 App SDK使用系列 39
4.1 從Lifecycle說起 39
4.2 大話UI 41
4.2.1 關(guān)于布局 41
4.2.2 常用控件 41
4.2.3 自定義View 42
4.3 存儲(chǔ)和網(wǎng)絡(luò) 43
4.4 本章小結(jié) 43
4.5 推薦資料 44
第5章 開源庫(kù)的選擇和使用 45
5.1 關(guān)于開源 46
5.2 開源庫(kù)的選擇 46
5.2.1 開源項(xiàng)目選擇 46
5.2.2 關(guān)于License 47
5.3 開源庫(kù)的使用 48
5.4 本章小結(jié) 49
5.5 推薦資料 49
* 二篇 核 心 篇
第6章 App常用模塊設(shè)計(jì) 52
6.1 基礎(chǔ)組件庫(kù) 52
6.1.1 構(gòu)建你的基礎(chǔ)組件庫(kù) 53
6.1.2 不得不說的圖片庫(kù) 54
6.1.3 淺談網(wǎng)絡(luò)庫(kù)和加密 61
6.2 常用業(yè)務(wù)模塊 65
6.2.1 啟動(dòng)引導(dǎo)模塊 65
6.2.2 注冊(cè)登錄模塊 66
6.2.3 運(yùn)營(yíng)統(tǒng)計(jì)模塊 67
6.3 編譯打包 68
6.3.1 打包方式和流程 68
6.3.2 Gradle實(shí)用技巧 71
6.4 版本適配 75
6.4.1 iOS App適配 76
6.4.2 Android App適配 77
6.5 本章小結(jié) 78
第7章 App架構(gòu)和重構(gòu) 79
7.1 從組件和模塊說起 80
7.2 組件化、模塊化和插件化 80
7.2.1 三個(gè)概念 80
7.2.2 App插件化 82
7.2.3 App組件化 83
7.3 UML基本功 86
7.3.1 UML工具 86
7.3.2 常見UML圖 87
7.3.3 UML實(shí)例 88
7.4 大話設(shè)計(jì)模式 88
7.4.1 六大原則 89
7.4.2 設(shè)計(jì)模式總覽 89
7.4.3 設(shè)計(jì)模式實(shí)踐 90
7.5 接口設(shè)計(jì) 91
7.5.1 API,What and Why 92
7.5.2 How API 92
7.6 常見架構(gòu)模式 95
7.6.1 MVX模式 95
7.6.2 常見軟件架構(gòu) 97
7.6.3 從組件化角度看App架構(gòu) 100
7.7 重構(gòu)未眠夜 102
7.7.1 重構(gòu)概覽 102
7.7.2 架構(gòu)重構(gòu) 103
7.7.3 代碼重構(gòu) 104
7.8 架構(gòu)設(shè)計(jì)夠了么 106
7.9 本章小結(jié) 106
7.10 推薦資料 106
第8章 App質(zhì)量和穩(wěn)定性系列 108
8.1 質(zhì)量標(biāo)準(zhǔn)和穩(wěn)定性指標(biāo) 109
8.1.1 應(yīng)用的核心質(zhì)量 109
8.1.2 穩(wěn)定性衡量指標(biāo) 109
8.2 質(zhì)量和穩(wěn)定性手段 112
8.2.1 質(zhì)量監(jiān)控 112
8.2.2 問題處理原則 115
8.2.3 App持續(xù)集成 115
8.2.4 代碼質(zhì)量監(jiān)測(cè) 125
8.3 笑談Crash 138
8.3.1 Crash基礎(chǔ)和原理 138
8.3.2 Crash收集和統(tǒng)計(jì) 142
8.3.3 Crash分析 150
8.4 測(cè)試專場(chǎng) 160
8.4.1 測(cè)試綜述 161
8.4.2 兼容性測(cè)試 165
8.4.3 性能和安全性測(cè)試 174
8.4.4 自動(dòng)化測(cè)試 174
8.4.5 A/B Testing 180
8.4.6 代碼覆蓋率 182
8.4.7 線上演練 183
8.5 本章小結(jié) 183
8.6 推薦資料 183
第9章 App性能優(yōu)化系列 185
9.1 性能分析 186
9.1.1 性能維度 186
9.1.2 性能優(yōu)化 186
9.1.3 性能測(cè)試平臺(tái) 187
9.2 硬件性能優(yōu)化 187
9.2.1 電量信息獲取 188
9.2.2 耗電分析 190
9.2.3 電量?jī)?yōu)化 191
9.3 UI和CPU性能優(yōu)化 194
9.3.1 基礎(chǔ)原理 194
9.3.2 流暢度度量 196
9.3.3 卡頓分析和優(yōu)化 201
9.4 內(nèi)存性能優(yōu)化 206
9.4.1 內(nèi)存機(jī)制和原理 206
9.4.2 內(nèi)存分析工具 210
9.4.3 泄露和溢出 210
9.4.4 內(nèi)存性能優(yōu)化 212
9.5 網(wǎng)絡(luò)性能優(yōu)化 215
9.5.1 網(wǎng)絡(luò)性能概述 216
9.5.2 網(wǎng)絡(luò)性能測(cè)試和流量度量 218
9.5.3 網(wǎng)絡(luò)性能優(yōu)化 220
9.6 App包Size優(yōu)化 223
9.6.1 App包Size優(yōu)化概述 223
9.6.2 App包Size分析 224
9.6.3 App包Size優(yōu)化 227
9.7 App啟動(dòng)速度優(yōu)化 230
9.7.1 App啟動(dòng)方式和流程 230
9.7.2 App啟動(dòng)時(shí)間度量 232
9.7.3 App啟動(dòng)速度優(yōu)化 234
9.8 App代碼優(yōu)化 235
9.9 本章小結(jié) 240
9.10 推薦資料 240
* 10章 App安全逆向系列 242
10.1 逆向概述 242
10.1.1 App包組成 243
10.1.2 逆向工具 245
10.1.3 Root和越獄 247
10.1.4 二次打包 247
10.2 逆向分析 248
10.2.1 靜態(tài)分析 248
10.2.2 動(dòng)態(tài)分析 249
10.2.3 Hook和注入 249
10.3 安全測(cè)試 251
10.4 安全建議 252
10.4.1 混淆和簽名 253
10.4.2 加固加殼 262
10.4.3 安全編碼和隱私 263
10.5 本章小結(jié) 265
10.6 推薦資料 265
* 11章 App熱門技術(shù) 267
11.1 進(jìn)程保活 267
11.1.1 基礎(chǔ)知識(shí) 268
11.1.2 ;罘椒 271
11.2 MultiDex 271
11.3 RxJava 273
11.3.1 RxJava基礎(chǔ) 273
11.3.2 RxJava應(yīng)用實(shí)例 276
11.4 Hybrid 281
11.5 HotFix 282
11.6 AOP 283
11.6.1 OOP與AOP 283
11.6.2 AOP應(yīng)用實(shí)例 283
11.7 本章小結(jié) 286
11.8 推薦資料 286
第三篇 產(chǎn) 品 篇
* 12章 App是如何練成的 290
12.1 App練成 290
12.2 開發(fā)流程 291
12.3 也談版本號(hào) 292
12.4 本章小結(jié) 293
* 13章 項(xiàng)、產(chǎn)、設(shè)、運(yùn)“四天* ” 294
13.1 項(xiàng)目管理 294
13.1.1 敏捷Scrum 295
13.1.2 班車模式 298
13.2 產(chǎn)品思想 298
13.2.1 產(chǎn)品經(jīng)理 299
13.2.2 產(chǎn)品思維 299
13.3 設(shè)計(jì)理念 302
13.3.1 UI與UX 302
13.3.2 設(shè)計(jì)理念 304
13.4 推廣運(yùn)營(yíng) 306
13.4.1 運(yùn)營(yíng)指標(biāo) 306
13.4.2 大話推廣 309
13.4.3 運(yùn)營(yíng)之道 310
13.5 本章小結(jié) 310
13.6 推薦資料 310
* 14章 我的高效團(tuán)隊(duì) 312
14.1 從代碼規(guī)范開始 312
14.2 不得不說的Code Review 313
14.3 晨會(huì),高效一 天的開始 315
14.4 溝通和團(tuán)建 315
14.5 別忘了技術(shù)分享 316
14.6 面試,面試,再面試 317
14.7 自管理,扁平化 318
14.8 * 后,聊聊加班 319
14.9 本章小結(jié) 319
14.10 推薦資料 319
第四篇 拓 展 篇
* 15章 架構(gòu)師那點(diǎn)事 322
15.1 大話全棧工程師 322
15.2 架構(gòu)師思維 323
15.3 學(xué)而時(shí)習(xí)之 324
15.4 軟技能 325
15.5 本章小結(jié) 326
15.6 推薦資料 326