Android開發進階實戰
內容描述
本書通過給Andorid開發人員講解一些可以提高開發效率的知識,
讓大家在作者的帶領下提高自己的開發水平,讓自己的項目更加高效與穩定。
書中重點講解了Andorid開中的一些進階技術,如Andorid TV開發、Flutter等。
本書涵蓋的主要內容有Android Studio開發環境搭建;Android新控件的使用;
掌握Android相關輔助工具;Android應用測試;Android應用安全;
Android Rom詳解;Android優秀開源庫的使用;NDK編譯;
線程與進程IPC;Android TV開發;Flutter從入門到實戰;項目實踐從0到1;設計模式詳解。
本書適合有Android相關開發基礎的進階讀者閱讀,希望能夠通過閱讀本書,
達到學習新技術、新架構、新思維,完成質的飛躍與轉變。
目錄大綱
前言
第1篇高效開發基礎
第1章高效開發工具2
1.1使用Android Studio進行高效開發2
1.1.1認識Android Studio2
1.1.2安裝與使用Android Studio7
1.2常用的Android Studio高效插件13
1.3 Android Studio小技巧19
1.3.1熟悉Gradle構建流程與腳本19
1.3.2 Lint靜態代碼分析22
1.3.3使用Android Studio進行調試23
1.3.4代碼重構26
第2章提高效率,從“新”開始28
2.1新佈局方式:ConstraintLayout28
2.1.1相對定位28
2.1.2邊距30
2.1.3居中定位和偏移31
2.1.4環形定位32
2.1.5尺寸約束33
2.1.6鏈約束34
2.2新包引入方式:AndroidX36
2.3新架構:Jetpack37
2.4新動畫:Lottie40
2.5新發展:Material Design42
第3章認識Android相關輔助工具44
3.1版本控制和源代碼管理工具44
3.1.1 SVN的基本用法44
3.1.2 Git的基本用法49
3.2 9-Patch的製作54
3.3抓包工具Fiddler57
3.4佈局分析器與結構視圖工具67
3.5反編譯工具69
第2篇核心技術詳解
第4章線程與進程IPC76
4.1 Handler與Looper76
4.2 Thread線程79
4.3 IPC進程間通信85
第5章Android應用安全98
5.1 Android常見漏洞及安全要點98
5.1.1 Android常見漏洞98
5.1.2 Android應用安全要點103
5.2 Android混淆與加固103
5.2.1 Android混淆104
5.2.2 Android應用加固110
5.3 Android數據加密與簽名112
5.3.1 Android數據加密112
5.3.2 Android簽名115
5.4 Android開發規範118
第6章Android應用測試135
6.1 Android測試方法和原則135
6.1 .1 Android測試方法136
6.1.2 Android測試原則137
6.2 Android應用測試內容140
6.3編寫Android應用測試用例144
6.3.1編寫Android本地測試用例145
6.3.2編寫Android儀器化測試用例151
6.4 Android應用測試主流框架155
6.4.1 Espresso測試框架155
6.4.2 UI Automator測試框架164
6.4. 3 Robolectric測試框架166
第7章定制與適配177
7.1定制主題與樣式177
7.1.1定義原則177
7.1.2自定義主題178
7.1.3自定義樣式180
7.2定制Dialog180
7.3定制Notification184
7.4自定義View188
7.5 Android適配與國際化處理196
7.5.1 Android適配196
7.5.2語言國際化209
第3篇拓展與實踐
第8章深入探索Android ROM214
8.1了解Android平台214
8.2 Android系統架構218
8.3 Android平台源碼結構221
8.4編譯Linux Kernel229
8.5編寫系統應用233
8.6 Android ROM常用知識點240
第9章Android TV開發243
9.1了解Android TV243
9.1.1 Android TV相關技術名詞243
9.1.2了解Android TV機頂盒249
9.2 Android TV開發規範及注意事項250
9.2.1 Android TV設計準則250
9.2.2 Android TV開發注意事項254
9.3 Android TV開發的常用ADB命令257
9.4構建Android TV應用258
第10章Flutter從入門到實戰263
10.1認識Flutter263
10.2 Flutter開發環境搭建和調試266
10.2.1開發環境的搭建266
10.2.2模擬器的安裝與調試273
10.3 Flutter常用的Widget和佈局277
10.3.1 Flutter基礎Widget279
10.3.2 Flutter基礎佈局287
10.4 HTTP網絡請求詳解294
10.4.1 HTTP的請求方式簡介294
10.4.2 Flutter HTTP網絡請求實現的區別和特點295
10.5 Flutter與Android305
10.6 Flutter的Android和iOS應用打包309
10.6.1 Flutter的Android應用打包309
10.6.2 Flutter的iOS應用打包310
第11章設計模式詳解312
11.1軟件設計原則312
11.1.1單一職責原則312
11.1.2里氏替換原則313
11.1.3依賴倒轉原則313
11.1.4接口隔離原則314
11.1.5迪米特原則314
11.1.6開閉原則315
11.1.7合成複用原則315
11.2軟件設計模式之創建型模式317
11.2.1單例模式318
11.2.2工廠模式321
11.2.3抽象工廠模式322
11.2.4建造者模式325
11.2.5原型模式328
11.3軟件設計模式之結構型模式329
11.3.1適配器模式330
11.3.2外觀模式333
11.3.3橋接模式334
11.3.4裝飾器模式336
11.3 .5代理模式338
11.3.6享元模式340
11.3.7組合模式342
11.4軟件設計模式之行為型模式345
11.4.1模板方法模式345
11.4.2策略模式346
11.4.3命令模式348
11.4.4責任鏈模式350
11.4.5狀態模式352
11.4.6觀察者模式354
11.4.7中介模式356
11.4.8迭代器模式359
11.4.9訪問者模式361
11.4.10備忘錄模式364
11.4.11解釋器模式366
第12章項目實踐從0到1370
12.1創建項目370
12.2項目核心邏輯的實現372
12.3 App項目調試380
12.4打包簽名384
12.5自動化壓力測試387
作者介紹
譚東
計算機科學與技術專業碩士。
IEEE SPAC 2018最佳論文獲得者,CSDN博客專家。
有6年多的Android編程經驗。
畢業後在重慶市科學技術研究院從事移動Android平台的開發工作,
之後在重慶廣電從事Android與IPTV機頂盒的相關開發工作。
對移動平台有濃厚的興趣,喜歡研究與分析總結,編寫了多個開源框架。
喜歡創新,熟悉Java、Dart、Node.js和React等多種編程語言與框架。