《Android APP開發實戰:從規劃到上線全程詳解》是2019年1月人民郵電出版社出版的圖書,作者是強增。
基本介紹
- 書名:Android APP開發實戰:從規劃到上線全程詳解
- 作者:強增
- ISBN:9787115472304
- 頁數:307頁
- 定價:69元
- 出版社:人民郵電出版社
- 出版時間:2019年1月
- 裝幀:平裝
- 開本:16開
內容簡介,圖書目錄,
內容簡介
本書詳盡地介紹了APP從規劃到上線過程中所涉及的各方面知識,包括產品規劃和原型設計、效果圖設計、切圖和尺寸標註、APP與伺服器間的協作、字元編碼、網路、多媒體、數據加密、設計模式、APP架構設計、APP性能最佳化、開發工具的使用、APP測試和項目管理等。
本書幫助讀者開闊眼界,且能夠以更專業和高效戀臘頸坑的方式完成APP的開發,適合新APP工程師作為開發參考。
圖書目錄
第 1章 開發APP前的準備事項… ……… 1
1.1 APP適配的硬體……………………… 2
1.2 APP橫豎屏界面的選擇………廈晚牛……… 2
1.3 APP適配的作業系統版本…………… 2
1.4 APP適配淋盼的螢幕尺寸………………… 3
1.5 APP開發樣機的選擇………………… 4
1.6 APP內置的圖片資源………………… 4
第2章 APP產品和設計人員的工作……5
2.1 編寫產品文檔時的注意事項… ……… 6
2.2 設計效果圖時的注意事項…………… 17
2.3 APP的切圖工作……………………多祝霸…18
2.4 點9圖簡介… …………………………20
2.4.1 點9圖……………………………20
2.4.2 製作工具… ……………………20
2.4.3 注意事項… …………………… 21
2.5 產品和設計文檔的版本管理………… 21
第3章 APP端和伺服器端的協作………… 22
3.1 接口設計注意事項… …………………23
3.2 安全方案………………………………30
3.2.1 HTTP命令的使用… …………30
3.2.2 使用時間戳參數 … ………… 31
3.2.3 數據加密 … …………………32
3.2.4 密碼的處理 … ………………32
3.2.5 數據的存儲 … ………………32
3.3 登錄方式………………………………32
3.3.1 賬號+密碼………………………32
3.3.2 賬號+密碼+驗證碼……………32
3.4 登錄狀態的維持………………………33
3.4.1 利用Token實現… ……………33
3.4.2 利用Cookie實現………………34
3.4.3 利用賬號和密碼實現… ………35
3.5 數據同步方案…………………………35
3.5.1 檔案的同步… …………………35
3.5.2 地址數據的同步… ……………36
3.5.3 非地址數據的同步… …………37
3.6 業務邏輯的實現………………………38
3.7 接口文檔的維護………………………38
第4章 字元編碼… …………………… 40
4.1 字元集… ………………………………41
4.2 字元編碼………………………………42
4.3 位元組序…………………………………43
第5章 TCP/IP概述…………………… 44
5.1 協定簡介… ……………………………45
5.2 TCP和UDP的區別…試驗束 ………………45
5.2.1 面向連線服務… ………………45
5.2.2 無連線服務… …………………46
第6章 HTTP網路請求… …………… 47
6.1 HTTP簡介……………………………48
6.1.1 協定… …………………………48
6.1.2 HTTP方法… …………………48
6.1.3 HTTP訊息… …………………49
6.1.4 HTTP頭欄位介紹… …………52
6.1.5 Keep-Alive模式介紹… ……55
6.1.6 HTTP狀態碼簡介… …………56
6.2 Cookie簡介… ………………………56
6.2.1 Cookie…………………………56
6.2.2 Cookie的設定和傳送…………57
6.3 Session簡介…………………………57
6.3.1 Session… ……………………57
6.3.2 SessionID…………凝多少拒…………58
6.4 短連線與長連線………………………58
6.4.1 短連線… ………………………58
6.4.2 長連線… ………………漏試整………58
6.4.3 使用場景… ……………………59
6.5 Volley網路庫簡介……………………59
6.5.1 Volley網路庫… ………………59
6.5.2 Volley網路庫的使用… ………66
第7章 HTTPS概述…………………… 73
7.1 協定簡介… ……………………………74
7.2 HTTPS的認證類型… ………………74
7.2.1 單向認證… ……………………74
7.2.2 雙向認證… ……………………75
第8章 加密簡介… …………………… 76
8.1 對稱加密… ……………………………77
8.2 非對稱加密……………………………77
8.3 MD5簡介… …………………………77
第9章 設計模式………………………… 80
9.1 設計模式簡介… ………………………81
9.2 面向對象設計原則……………………81
9.3 設計模式類別…………………………81
9.3.1 單例模式… ……………………82
9.3.2 Builder模式 …………………83
9.3.3 原型模式… ……………………83
9.3.4 工廠方法模式… ………………83
9.3.5 策略模式… ……………………84
9.3.6 狀態模式… ……………………84
9.3.7 命令模式… ……………………85
9.3.8 觀察者模式… …………………85
9.3.9 備忘錄模式… …………………85
9.3.10 疊代器模式……………………85
9.3.11 模板方法模式…………………85
9.3.12 代理模式………………………85
9.3.13 組合模式………………………86
9.3.14 適配器模式……………………86
9.3.15 外觀模式………………………86
9.3.16 橋接模式………………………86
第 10章 架構模式… …………………… 87
10.1 MVC架構……………………………88
10.2 MVP架構……………………………88
10.3 MVVM架構…………………………89
10.4 MVP+VM架構… …………………89
第 11章 APP架構設計………………… 90
11.1 基本原則………………………………91
11.2 分層設計………………………………92
11.2.1 三層架構………………………92
11.2.2 View層設計… ………………92
11.2.3 業務邏輯層設計(Presenter)……………94
11.2.4 數據訪問層設計(Model)…… 94
11.2.5 功能模組設計…………………94
11.3 層間通信………………………………96
11.3.1 通信方式………………………96
11.3.2 互動模式………………………96
11.4 跨業務模組調用………………………97
11.4.1 跨業務模組調用簡介…………97
11.4.2 跨業務模組調用方案…………97
第 12章 Activity概述………………… 98
12.1 Activity啟動方式……………………99
12.1.1 啟動模式………………………99
12.1.2 FLAG介紹………………… 100
12.2 Activity訊息路由… …………… 101
12.2.1 設計思路…………………… 101
12.2.2 具體實現…………………… 101
12.3 Activity數據的保存和恢復……103
12.3.1 臨時保存數據和恢複數據…… 103
12.3.2 持久保存數據和恢複數據…… 103
12.4 Activity數據傳遞… …………… 104
12.4.1 數據傳遞媒介……………… 104
12.4.2 數據傳遞機制……………… 108
12.5 BaseActivity設計……………… 109
12.5.1 套用級別的BaseActivity設計………………………… 109
12.5.2 功能級別的BaseActivity設計………………………… 111
第 13章 Service概述…………………114
13.1 Service的不同形式… ………… 115
13.2 Service與執行緒… ……………… 115
13.3 IntentService… ……………… 116
13.4 前台服務… ……………………… 116
13.5 服務的生命周期… ……………… 117
第 14章 Broadcast概述… …………118
14.1 廣播機制簡介……………………… 119
14.2 BroadcastReceiver………… 119
14.2.1 靜態註冊…………………… 119
14.2.2 動態註冊…………………… 120
14.3 廣播類型… ……………………… 120
14.3.1 普通廣播(Normal…Broadcast)…… 120
14.3.2 系統廣播(System…Broadcast)…… 121
14.3.3 有序廣播(Ordered…Broadcast)…… 121
14.3.4 局部廣播(Local…Broadcast)…… 123
14.4 廣播的安全性… ………………… 123
第 15章 ContentProvider概述… ……125
第 16章 Fragment概述………………127
16.1 Fragment簡介… ……………… 128
16.2 Fragment的創建……………… 128
16.3 Fragment的懶載入………… 130
16.4 Fragment的數據保存和恢復… 133
16.4.1 臨時保存數據和恢復……… 133
16.4.2 持久保存數據和恢復……… 134
16.5 Fragment的使用場景………… 134
第 17章 Android許可權…………………135
17.1 許可權分類…………………………… 136
17.1.1 Normal Permissions…… 136
17.1.2 Dangerous…Permissions…… 137
17.2 動態許可權申請…………………… 138
17.3 兼容性問題……………………… 139
第 18章 Android動畫……………… 140
18.1 幀動畫……………………………… 141
18.2 View動畫………………………… 142
18.3 屬性動畫簡介… ………………… 144
18.3.1 屬性動畫…………………… 144
18.3.2 使用示例…………………… 145
18.4 Activity切換動畫… …………… 147
第 19章 圖片類型……………………… 149
19.1 點陣圖簡介…………………………… 150
19.1.1 點陣圖………………………… 150
19.1.2 WebP格式………………… 150
19.2 矢量圖簡介……………………… 151
第 20章 Android矢量圖的使用……152
20.1 功能簡介………………………… 153
20.2 兼容性處理……………………… 154
20.3 Vector語法簡介………………… 155
20.4 Vector靜態圖的使用…………… 157
20.5 Vector動態圖的使用…………… 159
20.5.1 功能實現…………………… 159
20.5.2 動態Vector兼容性問題…… 161
第 21章 Android異常…………………162
21.1 異常分類…………………………… 163
21.2 異常處理………………………… 163
21.2.1 使用try…catch…處理異常………………………… 164
21.2.2 使用UncaughtException Handler處理異常………… 164
21.2.3 ANR異常的處理………… 170
21.3 注意事項……………………… 174
第 22章 Android的本地存儲…………175
22.1 內部存儲(Internal Storage)…… 176
22.1.1 非快取檔案的處理………… 176
22.1.2 快取檔案的處理…………… 176
22.2 外部存儲(External Storage)…… 177
22.2.1 外部公共存儲……………… 178
22.2.2 外部私有存儲……………… 179
22.2.3 使用作用域訪問……… 182
第 23章 ABI管理……………………… 184
23.1 ABI簡介…………………………… 185
23.2 支持的ABI……………………… 185
23.3 為特定ABI生成代碼…………… 186
23.4 Android系統的ABI管理……… 186
23.5 Android系統ABI支持………… 187
23.6 安裝時自動解壓縮原生代碼……… 187
第 24章 ProGuard混淆…………… 188
24.1 ProGuard簡介………………… 189
24.2 ProGuard指令介紹…………… 189
24.3 ProGuard注意事項…………… 190
24.4 ProGuard相關檔案…………… 192
第 25章 Android Studio使用技巧……193
25.1 編譯打包………………………… 194
25.2 功能宏的使用…………………… 196
25.3 集成SO檔案……………………… 196
25.4 模板的定製使用………………… 197
第 26章 APP快取處理…………………211
26.1 快取簡介………………………… 212
26.2 快取控制………………………… 212
26.3 快取實現………………………… 212
26.4 WebView快取………………… 213
26.5 快取注意事項…………………… 214
26.6 清除數據和清除快取的區別……214
第 27章 APP性能最佳化…………………215
27.1 減少APP所占空間大小… ……… 216
27.1.1 減少圖片所占空間大小…… 216
27.1.2 減少音頻檔案所占空間大小………………………… 221
27.1.3 減少代碼所占空間大小…… 221
27.1.4 使用APK Analyzer分析APP……………………… 222
27.1.5 利用工具減少APP大小…… 226
27.2 減少APP使用的網路流量……… 228
27.3 記憶體最佳化………………………… 229
27.3.1 節省記憶體………………… 229
27.3.2 防止記憶體泄露…………… 231
27.3.3 防止OOM……………… 232
27.4 UI性能最佳化……………………… 232
27.5 電量最佳化………………………… 233
27.6 運行速度最佳化…………………… 233
27.7 性能最佳化工具…………………… 234
27.7.1 Android Studio自帶工具………………………… 234
27.7.2 Android系統工具……… 235
27.7.3 三方工具…………………… 236
第 28章 Log功能設計…………………237
28.1 Log輸出控制…………………… 238
28.2 注意事項………………………… 239
28.3 Log數據的格式化……………… 239
28.4 使用AOP技術輸出Log………… 239
28.4.1 AOP簡介………………… 239
28.4.2 AOP技術的使用………… 240
第 29章 APP版本管理…………………254
第30章 APP版本更新功能設計………256
30.1 功能項…………………………… 257
30.1.1 伺服器端功能…………… 257
30.1.2 APP端功能……………… 257
30.2 APP和伺服器互動……………… 257
第31章 APP常用功能設計…………… 260
31.1 啟動界面設計……………………… 261
31.1.1 啟動界面白屏解決方案…… 261
31.1.2 啟動界面禁止返回按鍵……… 261
31.2 首頁設計………………………… 262
31.3 登錄功能設計…………………… 262
31.4 商品詳情界面設計……………… 262
31.5 購物車功能設計………………… 262
31.6 商品展示界面功能設計………… 263
31.7 個人中心界面功能設計………… 263
31.8 搜尋功能設計…………………… 263
31.9 WebView功能設計…………… 264
31.10 出錯提示功能設計……………… 266
31.11 界面內容隱藏和顯示設計……… 266
31.12 提示功能設計…………………… 267
31.12.1 三種控制簡介… ………… 267
31.12.2 AlertDialog介紹………… 268
31.12.3 Toast介紹……………… 269
31.12.4 Snackbar介紹………… 270
31.13 定期執行任務的功能設計……… 271
31.13.1 JobScheduler介紹……… 271
31.13.2 JobScheduler的替代方案……………………… 274
31.13.3 注意事項………………… 277
31.14 全螢幕模式的功能設計…………… 277
31.14.1 Lean Back……………… 277
31.14.2 Immersive……………… 278
31.15 開機自啟動的功能設計………… 279
31.15.1 普通模式………………… 279
31.15.2 直接啟動模式…………… 279
31.15.3 示例代碼………………… 279
31.16 APP快捷圖示的功能設計……… 280
31.16.1 簡介……………………… 280
31.16.2 靜態快捷圖示…………… 281
31.16.3 動態快捷圖示…………… 282
31.17 針對Android7.0及更高版本的後台最佳化方案…………………… 282
31.17.1 對於CONNECTIVITY_ACTION…限制的解決方案………………………… 283
31.17.2 對於ACTION_NEW_ PICTURE和ACTION_ NEW_VIDEO的限制的解決方法………………… 284
31.18 伺服器接口的單元測試………… 285
31.18.1 單元測試………………… 286
31.18.2 使用MockWebServer進行接口的單元測試………… 286
31.19 自動調整文字大小的TextView……………………… 289
31.19.1 Default方式……………… 290
31.19.2 Granularity方式……… 290
31.19.3 Preset Sizes方式……… 291
第32章 代碼封裝………………………293
第33章 APP測試………………………295
第34章 項目管理………………………298
34.1 項目團隊成員…………………… 299
34.2 需求處理………………………… 299
34.3 進度計畫… ……………………… 300
第35章 Git使用………………………302
35.1 Git工具簡介……………………… 303
35.1.1 客戶端工具………………… 303
35.1.2 伺服器端工具 …………… 306
35.2 Git常用命令……………………… 306
35.3 使用Git的注意事項……………… 307
3.5.1 檔案的同步… …………………35
3.5.2 地址數據的同步… ……………36
3.5.3 非地址數據的同步… …………37
3.6 業務邏輯的實現………………………38
3.7 接口文檔的維護………………………38
第4章 字元編碼… …………………… 40
4.1 字元集… ………………………………41
4.2 字元編碼………………………………42
4.3 位元組序…………………………………43
第5章 TCP/IP概述…………………… 44
5.1 協定簡介… ……………………………45
5.2 TCP和UDP的區別… ………………45
5.2.1 面向連線服務… ………………45
5.2.2 無連線服務… …………………46
第6章 HTTP網路請求… …………… 47
6.1 HTTP簡介……………………………48
6.1.1 協定… …………………………48
6.1.2 HTTP方法… …………………48
6.1.3 HTTP訊息… …………………49
6.1.4 HTTP頭欄位介紹… …………52
6.1.5 Keep-Alive模式介紹… ……55
6.1.6 HTTP狀態碼簡介… …………56
6.2 Cookie簡介… ………………………56
6.2.1 Cookie…………………………56
6.2.2 Cookie的設定和傳送…………57
6.3 Session簡介…………………………57
6.3.1 Session… ……………………57
6.3.2 SessionID……………………58
6.4 短連線與長連線………………………58
6.4.1 短連線… ………………………58
6.4.2 長連線… ………………………58
6.4.3 使用場景… ……………………59
6.5 Volley網路庫簡介……………………59
6.5.1 Volley網路庫… ………………59
6.5.2 Volley網路庫的使用… ………66
第7章 HTTPS概述…………………… 73
7.1 協定簡介… ……………………………74
7.2 HTTPS的認證類型… ………………74
7.2.1 單向認證… ……………………74
7.2.2 雙向認證… ……………………75
第8章 加密簡介… …………………… 76
8.1 對稱加密… ……………………………77
8.2 非對稱加密……………………………77
8.3 MD5簡介… …………………………77
第9章 設計模式………………………… 80
9.1 設計模式簡介… ………………………81
9.2 面向對象設計原則……………………81
9.3 設計模式類別…………………………81
9.3.1 單例模式… ……………………82
9.3.2 Builder模式 …………………83
9.3.3 原型模式… ……………………83
9.3.4 工廠方法模式… ………………83
9.3.5 策略模式… ……………………84
9.3.6 狀態模式… ……………………84
9.3.7 命令模式… ……………………85
9.3.8 觀察者模式… …………………85
9.3.9 備忘錄模式… …………………85
9.3.10 疊代器模式……………………85
9.3.11 模板方法模式…………………85
9.3.12 代理模式………………………85
9.3.13 組合模式………………………86
9.3.14 適配器模式……………………86
9.3.15 外觀模式………………………86
9.3.16 橋接模式………………………86
第 10章 架構模式… …………………… 87
10.1 MVC架構……………………………88
10.2 MVP架構……………………………88
10.3 MVVM架構…………………………89
10.4 MVP+VM架構… …………………89
第 11章 APP架構設計………………… 90
11.1 基本原則………………………………91
11.2 分層設計………………………………92
11.2.1 三層架構………………………92
11.2.2 View層設計… ………………92
11.2.3 業務邏輯層設計(Presenter)……………94
11.2.4 數據訪問層設計(Model)…… 94
11.2.5 功能模組設計…………………94
11.3 層間通信………………………………96
11.3.1 通信方式………………………96
11.3.2 互動模式………………………96
11.4 跨業務模組調用………………………97
11.4.1 跨業務模組調用簡介…………97
11.4.2 跨業務模組調用方案…………97
第 12章 Activity概述………………… 98
12.1 Activity啟動方式……………………99
12.1.1 啟動模式………………………99
12.1.2 FLAG介紹………………… 100
12.2 Activity訊息路由… …………… 101
12.2.1 設計思路…………………… 101
12.2.2 具體實現…………………… 101
12.3 Activity數據的保存和恢復……103
12.3.1 臨時保存數據和恢複數據…… 103
12.3.2 持久保存數據和恢複數據…… 103
12.4 Activity數據傳遞… …………… 104
12.4.1 數據傳遞媒介……………… 104
12.4.2 數據傳遞機制……………… 108
12.5 BaseActivity設計……………… 109
12.5.1 套用級別的BaseActivity設計………………………… 109
12.5.2 功能級別的BaseActivity設計………………………… 111
第 13章 Service概述…………………114
13.1 Service的不同形式… ………… 115
13.2 Service與執行緒… ……………… 115
13.3 IntentService… ……………… 116
13.4 前台服務… ……………………… 116
13.5 服務的生命周期… ……………… 117
第 14章 Broadcast概述… …………118
14.1 廣播機制簡介……………………… 119
14.2 BroadcastReceiver………… 119
14.2.1 靜態註冊…………………… 119
14.2.2 動態註冊…………………… 120
14.3 廣播類型… ……………………… 120
14.3.1 普通廣播(Normal…Broadcast)…… 120
14.3.2 系統廣播(System…Broadcast)…… 121
14.3.3 有序廣播(Ordered…Broadcast)…… 121
14.3.4 局部廣播(Local…Broadcast)…… 123
14.4 廣播的安全性… ………………… 123
第 15章 ContentProvider概述… ……125
第 16章 Fragment概述………………127
16.1 Fragment簡介… ……………… 128
16.2 Fragment的創建……………… 128
16.3 Fragment的懶載入………… 130
16.4 Fragment的數據保存和恢復… 133
16.4.1 臨時保存數據和恢復……… 133
16.4.2 持久保存數據和恢復……… 134
16.5 Fragment的使用場景………… 134
第 17章 Android許可權…………………135
17.1 許可權分類…………………………… 136
17.1.1 Normal Permissions…… 136
17.1.2 Dangerous…Permissions…… 137
17.2 動態許可權申請…………………… 138
17.3 兼容性問題……………………… 139
第 18章 Android動畫……………… 140
18.1 幀動畫……………………………… 141
18.2 View動畫………………………… 142
18.3 屬性動畫簡介… ………………… 144
18.3.1 屬性動畫…………………… 144
18.3.2 使用示例…………………… 145
18.4 Activity切換動畫… …………… 147
第 19章 圖片類型……………………… 149
19.1 點陣圖簡介…………………………… 150
19.1.1 點陣圖………………………… 150
19.1.2 WebP格式………………… 150
19.2 矢量圖簡介……………………… 151
第 20章 Android矢量圖的使用……152
20.1 功能簡介………………………… 153
20.2 兼容性處理……………………… 154
20.3 Vector語法簡介………………… 155
20.4 Vector靜態圖的使用…………… 157
20.5 Vector動態圖的使用…………… 159
20.5.1 功能實現…………………… 159
20.5.2 動態Vector兼容性問題…… 161
第 21章 Android異常…………………162
21.1 異常分類…………………………… 163
21.2 異常處理………………………… 163
21.2.1 使用try…catch…處理異常………………………… 164
21.2.2 使用UncaughtException Handler處理異常………… 164
21.2.3 ANR異常的處理………… 170
21.3 注意事項……………………… 174
第 22章 Android的本地存儲…………175
22.1 內部存儲(Internal Storage)…… 176
22.1.1 非快取檔案的處理………… 176
22.1.2 快取檔案的處理…………… 176
22.2 外部存儲(External Storage)…… 177
22.2.1 外部公共存儲……………… 178
22.2.2 外部私有存儲……………… 179
22.2.3 使用作用域訪問……… 182
第 23章 ABI管理……………………… 184
23.1 ABI簡介…………………………… 185
23.2 支持的ABI……………………… 185
23.3 為特定ABI生成代碼…………… 186
23.4 Android系統的ABI管理……… 186
23.5 Android系統ABI支持………… 187
23.6 安裝時自動解壓縮原生代碼……… 187
第 24章 ProGuard混淆…………… 188
24.1 ProGuard簡介………………… 189
24.2 ProGuard指令介紹…………… 189
24.3 ProGuard注意事項…………… 190
24.4 ProGuard相關檔案…………… 192
第 25章 Android Studio使用技巧……193
25.1 編譯打包………………………… 194
25.2 功能宏的使用…………………… 196
25.3 集成SO檔案……………………… 196
25.4 模板的定製使用………………… 197
第 26章 APP快取處理…………………211
26.1 快取簡介………………………… 212
26.2 快取控制………………………… 212
26.3 快取實現………………………… 212
26.4 WebView快取………………… 213
26.5 快取注意事項…………………… 214
26.6 清除數據和清除快取的區別……214
第 27章 APP性能最佳化…………………215
27.1 減少APP所占空間大小… ……… 216
27.1.1 減少圖片所占空間大小…… 216
27.1.2 減少音頻檔案所占空間大小………………………… 221
27.1.3 減少代碼所占空間大小…… 221
27.1.4 使用APK Analyzer分析APP……………………… 222
27.1.5 利用工具減少APP大小…… 226
27.2 減少APP使用的網路流量……… 228
27.3 記憶體最佳化………………………… 229
27.3.1 節省記憶體………………… 229
27.3.2 防止記憶體泄露…………… 231
27.3.3 防止OOM……………… 232
27.4 UI性能最佳化……………………… 232
27.5 電量最佳化………………………… 233
27.6 運行速度最佳化…………………… 233
27.7 性能最佳化工具…………………… 234
27.7.1 Android Studio自帶工具………………………… 234
27.7.2 Android系統工具……… 235
27.7.3 三方工具…………………… 236
第 28章 Log功能設計…………………237
28.1 Log輸出控制…………………… 238
28.2 注意事項………………………… 239
28.3 Log數據的格式化……………… 239
28.4 使用AOP技術輸出Log………… 239
28.4.1 AOP簡介………………… 239
28.4.2 AOP技術的使用………… 240
第 29章 APP版本管理…………………254
第30章 APP版本更新功能設計………256
30.1 功能項…………………………… 257
30.1.1 伺服器端功能…………… 257
30.1.2 APP端功能……………… 257
30.2 APP和伺服器互動……………… 257
第31章 APP常用功能設計…………… 260
31.1 啟動界面設計……………………… 261
31.1.1 啟動界面白屏解決方案…… 261
31.1.2 啟動界面禁止返回按鍵……… 261
31.2 首頁設計………………………… 262
31.3 登錄功能設計…………………… 262
31.4 商品詳情界面設計……………… 262
31.5 購物車功能設計………………… 262
31.6 商品展示界面功能設計………… 263
31.7 個人中心界面功能設計………… 263
31.8 搜尋功能設計…………………… 263
31.9 WebView功能設計…………… 264
31.10 出錯提示功能設計……………… 266
31.11 界面內容隱藏和顯示設計……… 266
31.12 提示功能設計…………………… 267
31.12.1 三種控制簡介… ………… 267
31.12.2 AlertDialog介紹………… 268
31.12.3 Toast介紹……………… 269
31.12.4 Snackbar介紹………… 270
31.13 定期執行任務的功能設計……… 271
31.13.1 JobScheduler介紹……… 271
31.13.2 JobScheduler的替代方案……………………… 274
31.13.3 注意事項………………… 277
31.14 全螢幕模式的功能設計…………… 277
31.14.1 Lean Back……………… 277
31.14.2 Immersive……………… 278
31.15 開機自啟動的功能設計………… 279
31.15.1 普通模式………………… 279
31.15.2 直接啟動模式…………… 279
31.15.3 示例代碼………………… 279
31.16 APP快捷圖示的功能設計……… 280
31.16.1 簡介……………………… 280
31.16.2 靜態快捷圖示…………… 281
31.16.3 動態快捷圖示…………… 282
31.17 針對Android7.0及更高版本的後台最佳化方案…………………… 282
31.17.1 對於CONNECTIVITY_ACTION…限制的解決方案………………………… 283
31.17.2 對於ACTION_NEW_ PICTURE和ACTION_ NEW_VIDEO的限制的解決方法………………… 284
31.18 伺服器接口的單元測試………… 285
31.18.1 單元測試………………… 286
31.18.2 使用MockWebServer進行接口的單元測試………… 286
31.19 自動調整文字大小的TextView……………………… 289
31.19.1 Default方式……………… 290
31.19.2 Granularity方式……… 290
31.19.3 Preset Sizes方式……… 291
第32章 代碼封裝………………………293
第33章 APP測試………………………295
第34章 項目管理………………………298
34.1 項目團隊成員…………………… 299
34.2 需求處理………………………… 299
34.3 進度計畫… ……………………… 300
第35章 Git使用………………………302
35.1 Git工具簡介……………………… 303
35.1.1 客戶端工具………………… 303
35.1.2 伺服器端工具 …………… 306
35.2 Git常用命令……………………… 306
35.3 使用Git的注意事項……………… 307