新書上市:Android APP開發(fā)實戰(zhàn) 從規(guī)劃到上線全程詳解

京東:https://item.jd.com/28649240718.html

當當:http://product.dangdang.com/25282490.html

亞馬遜:https://www.amazon.cn/dp/B07D4ZPMGJ/ref=sr_1_5?s=books&ie=UTF8&qid=1527770243&sr=1-5&keywords=android+app


第 1章 開發(fā)APP前的準備事項… ……… 1

1.1 APP適配的硬件……………………… 2

1.2 APP橫豎屏界面的選擇……………… 2

1.3 APP適配的操作系統(tǒng)版本…………… 2

1.4 APP適配的屏幕尺寸………………… 3

1.5 APP開發(fā)樣機的選擇………………… 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端和服務器端的協(xié)作………… 22

3.1 接口設計注意事項… …………………23

3.2 安全方案………………………………30

3.2.1 HTTP命令的使用… …………30

3.2.2 使用時間戳參數(shù) … ………… 31

3.2.3 數(shù)據(jù)加密 … …………………32

3.2.4 密碼的處理 … ………………32

3.2.5 數(shù)據(jù)的存儲 … ………………32

3.3 登錄方式………………………………32

3.3.1 賬號 密碼………………………32

3.3.2 賬號 密碼 驗證碼……………32

3.4 登錄狀態(tài)的維持………………………33

3.4.1 利用Token實現(xiàn)… ……………33

3.4.2 利用Cookie實現(xiàn)………………34

3.4.3 利用賬號和密碼實現(xiàn)… ………35

3.5 數(shù)據(jù)同步方案…………………………35

3.5.1 文件的同步… …………………35

3.5.2 地址數(shù)據(jù)的同步… ……………36

3.5.3 非地址數(shù)據(jù)的同步… …………37

3.6 業(yè)務邏輯的實現(xiàn)………………………38

3.7 接口文檔的維護………………………38

第4章 字符編碼… …………………… 40

4.1 字符集… ………………………………41

4.2 字符編碼………………………………42

4.3 字節(jié)序…………………………………43

第5章 TCP/IP概述…………………… 44

5.1 協(xié)議簡介… ……………………………45

5.2 TCP和UDP的區(qū)別… ………………45

5.2.1 面向連接服務… ………………45

5.2.2 無連接服務… …………………46

第6章 HTTP網絡請求… …………… 47

6.1 HTTP簡介……………………………48

6.1.1 協(xié)議… …………………………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狀態(tài)碼簡介… …………56

6.2 Cookie簡介… ………………………56

6.2.1 Cookie…………………………56

6.2.2 Cookie的設置和發(fā)送…………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 協(xié)議簡介… ……………………………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 狀態(tài)模式… ……………………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 業(yè)務邏輯層設計(Presenter)……………94

11.2.4 數(shù)據(jù)訪問層設計(Model)…… 94

11.2.5 功能模塊設計…………………94

11.3 層間通信………………………………96

11.3.1 通信方式………………………96

11.3.2 交互模式………………………96

11.4 跨業(yè)務模塊調用………………………97

11.4.1 跨業(yè)務模塊調用簡介…………97

11.4.2 跨業(yè)務模塊調用方案…………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 具體實現(xiàn)…………………… 101

12.3 Activity數(shù)據(jù)的保存和恢復……103

12.3.1 臨時保存數(shù)據(jù)和恢復數(shù)據(jù)…… 103

12.3.2 持久保存數(shù)據(jù)和恢復數(shù)據(jù)…… 103

12.4 Activity數(shù)據(jù)傳遞… …………… 104

12.4.1 數(shù)據(jù)傳遞媒介……………… 104

12.4.2 數(shù)據(jù)傳遞機制……………… 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 靜態(tài)注冊…………………… 119

14.2.2 動態(tài)注冊…………………… 120

14.3 廣播類型… ……………………… 120

14.3.1 普通廣播(Normal…Broadcast)…… 120

14.3.2 系統(tǒng)廣播(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的創(chuàng)建……………… 128

16.3 Fragment的懶加載………… 130

16.4 Fragment的數(shù)據(jù)保存和恢復… 133

16.4.1 臨時保存數(shù)據(jù)和恢復……… 133

16.4.2 持久保存數(shù)據(jù)和恢復……… 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 動態(tài)權限申請…………………… 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靜態(tài)圖的使用…………… 157

20.5 Vector動態(tài)圖的使用…………… 159

20.5.1 功能實現(xiàn)…………………… 159

20.5.2 動態(tài)Vector兼容性問題…… 161

第 21章 Android異?!?62

21.1 異常分類…………………………… 163

21.2 異常處理………………………… 163

21.2.1 使用try…catch…處理異?!?64

21.2.2 使用UncaughtException Handler處理異?!?64

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系統(tǒng)的ABI管理……… 186

23.5 Android系統(tǒng)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 緩存實現(xiàn)………………………… 212

26.4 WebView緩存………………… 213

26.5 緩存注意事項…………………… 214

26.6 清除數(shù)據(jù)和清除緩存的區(qū)別……214

第 27章 APP性能優(yōu)化…………………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 內存優(yōu)化………………………… 229

27.3.1 節(jié)省內存………………… 229

27.3.2 防止內存泄露…………… 231

27.3.3 防止OOM……………… 232

27.4 UI性能優(yōu)化……………………… 232

27.5 電量優(yōu)化………………………… 233

27.6 運行速度優(yōu)化…………………… 233

27.7 性能優(yōu)化工具…………………… 234

27.7.1 Android Studio自帶工具………………………… 234

27.7.2 Android系統(tǒng)工具……… 235

27.7.3 三方工具…………………… 236

第 28章 Log功能設計…………………237

28.1 Log輸出控制…………………… 238

28.2 注意事項………………………… 239

28.3 Log數(shù)據(jù)的格式化……………… 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 定期執(zhí)行任務的功能設計……… 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 靜態(tài)快捷圖標…………… 281

31.16.3 動態(tài)快捷圖標…………… 282

31.17 針對Android7.0及更高版本的后臺優(yōu)化方案…………………… 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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容