內(nèi) 容 提 要
本書全面講解了成為移動應(yīng)用架構(gòu)師必 備的知識,以及需要學(xué)習(xí)的技術(shù),主要內(nèi)容包括App架構(gòu)師成長路線、App基礎(chǔ)語法系列、App開發(fā)工具系列、App SDK使用系列、開源庫的選擇和使用、App常用模塊設(shè)計、App架構(gòu)和重構(gòu)、App質(zhì)量和穩(wěn)定性系列、App性能優(yōu)化系列、App安全逆向系列、App熱門技術(shù)、項目管理、產(chǎn)品思維、設(shè)計理念、推廣運營、打造高效團(tuán)隊、架構(gòu)師思維等綜合技能。
本書適合企業(yè)一線App開發(fā)工程師、程序員、產(chǎn)品經(jīng)理等從業(yè)者閱讀,也適合 作為大專院校相關(guān)專業(yè)師生的學(xué)習(xí)用書和培訓(xùn)學(xué)校的教材。
全面介紹了在移動應(yīng)用開發(fā)的架構(gòu)設(shè)計和性能優(yōu)化方面的知識,是架構(gòu)師的必 備書籍
講述了移動應(yīng)用架構(gòu)師需要了解的技能、思想等整體的發(fā)展方向,是移動架構(gòu)師成長的路線圖
讀者不僅可以學(xué)習(xí)到移動應(yīng)用的開發(fā)技術(shù),更能收獲到在實戰(zhàn)項目中會用到的各種工程化的知識,是架構(gòu)師的學(xué)習(xí)寶典
趙波,研究生,前阿里資 深軟件工程師/圖像算法工程師,擅長移動應(yīng)用和圖像算法開發(fā),在計算機(jī)視覺,無線互聯(lián)以及軟件測試生態(tài)鏈工具等多領(lǐng)域有深入研究和較深刻理解。曾在多家創(chuàng)業(yè)公司擔(dān)任技術(shù)顧問和技術(shù)總監(jiān)職位,某知名企業(yè)培訓(xùn)機(jī)構(gòu)企業(yè)內(nèi)訓(xùn)高 級講師,某在線教育平臺Android講師,發(fā)表國家核心期刊3篇,國家發(fā)明專利22件,國內(nèi)* 一本NFC書籍《Android NFC開發(fā)實戰(zhàn)》作者,
目錄
* 一篇 基 礎(chǔ) 篇
* 1章 App架構(gòu)師成長路線 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è)計 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 存儲和網(wǎng)絡(luò) 43
4.4 本章小結(jié) 43
4.5 推薦資料 44
第5章 開源庫的選擇和使用 45
5.1 關(guān)于開源 46
5.2 開源庫的選擇 46
5.2.1 開源項目選擇 46
5.2.2 關(guān)于License 47
5.3 開源庫的使用 48
5.4 本章小結(jié) 49
5.5 推薦資料 49
* 二篇 核 心 篇
第6章 App常用模塊設(shè)計 52
6.1 基礎(chǔ)組件庫 52
6.1.1 構(gòu)建你的基礎(chǔ)組件庫 53
6.1.2 不得不說的圖片庫 54
6.1.3 淺談網(wǎng)絡(luò)庫和加密 61
6.2 常用業(yè)務(wù)模塊 65
6.2.1 啟動引導(dǎo)模塊 65
6.2.2 注冊登錄模塊 66
6.2.3 運營統(tǒng)計模塊 67
6.3 編譯打包 68
6.3.1 打包方式和流程 68
6.3.2 Gradle實用技巧 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 三個概念 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實例 88
7.4 大話設(shè)計模式 88
7.4.1 六大原則 89
7.4.2 設(shè)計模式總覽 89
7.4.3 設(shè)計模式實踐 90
7.5 接口設(shè)計 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è)計夠了么 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)測 125
8.3 笑談Crash 138
8.3.1 Crash基礎(chǔ)和原理 138
8.3.2 Crash收集和統(tǒng)計 142
8.3.3 Crash分析 150
8.4 測試專場 160
8.4.1 測試綜述 161
8.4.2 兼容性測試 165
8.4.3 性能和安全性測試 174
8.4.4 自動化測試 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 性能測試平臺 187
9.2 硬件性能優(yōu)化 187
9.2.1 電量信息獲取 188
9.2.2 耗電分析 190
9.2.3 電量優(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ò)性能測試和流量度量 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啟動速度優(yōu)化 230
9.7.1 App啟動方式和流程 230
9.7.2 App啟動時間度量 232
9.7.3 App啟動速度優(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 動態(tài)分析 249
10.2.3 Hook和注入 249
10.3 安全測試 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ǔ)知識 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)用實例 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)用實例 283
11.7 本章小結(jié) 286
11.8 推薦資料 286
第三篇 產(chǎn) 品 篇
* 12章 App是如何練成的 290
12.1 App練成 290
12.2 開發(fā)流程 291
12.3 也談版本號 292
12.4 本章小結(jié) 293
* 13章 項、產(chǎn)、設(shè)、運“四天* ” 294
13.1 項目管理 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è)計理念 302
13.3.1 UI與UX 302
13.3.2 設(shè)計理念 304
13.4 推廣運營 306
13.4.1 運營指標(biāo) 306
13.4.2 大話推廣 309
13.4.3 運營之道 310
13.5 本章小結(jié) 310
13.6 推薦資料 310
* 14章 我的高效團(tuán)隊 312
14.1 從代碼規(guī)范開始 312
14.2 不得不說的Code Review 313
14.3 晨會,高效一 天的開始 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)師那點事 322
15.1 大話全棧工程師 322
15.2 架構(gòu)師思維 323
15.3 學(xué)而時習(xí)之 324
15.4 軟技能 325
15.5 本章小結(jié) 326
15.6 推薦資料 326