圖書總覽

字級:
小字級
中字級
大字級

全能Android絕對正確培養聖經(旗艦版)

作者:顧浩鑫
出版日期:2019/3/25
語言:繁體中文
書號:PU1904
ISBN:9789863797456
裝訂:平裝
定價:720 元

商品特色

紮實基礎/極霸效能/高超應用/深度強化

8大篇幅結構打造強勁堅實的技術

Android高級工程師50個必備技能

讓身在高點的能手更能傲視群倫無人能及

內容簡介

Android的書這麼多,要找到真正幫你培養全職能的書卻不容易。

這是一本來自第一線網路公司的真正實作產品方案的完整過程,而非簡單說明一下Android的函數庫,開發原理等基礎書籍。

全書包括了規劃、設計、測試、佈署、多人協作、好用工具等等,這林林總總,都是從血淋淋的網際網路產品戰場上打下的基礎。

看完本書,就具備了世界前500大網路公司的寶貴開發經驗,是想成為全能Android高手的必讀。

目錄

1 基礎篇

CHAPTER 01 Android觸控事件傳遞機制

1.1 觸控事件的類型

1.2 事件傳遞的三個階段

1.3 View的事件傳遞機制

1.4 ViewGroup的事件傳遞機制

CHAPTER 002 AndroidView的繪製流程

2.1 繪製的整體流程

2.2 MeasureSpec

2.3 Measure

2.4 Layout

2.5 Draw

CHAPTER 03 Android動畫機制

3.1 逐頁框動畫(Frame Animation

3.2 補間動畫(Tween Animation

3.3 屬性動畫(Property Animation

3.4 過場動畫(Transition Animation

CHAPTER 04 Support Annotation Library使用詳解

4.1 Nullness註釋

4.2 資源類型註釋

4.3 類型定義註釋

4.4 執行緒註釋

4.5 RGB顏色值註釋

4.6 值範圍註釋

4.7 許可權註釋

4.8 重新定義函數註釋

4.9 傳回值註釋

4.10 @VisibleForTesting

4.11 @Keep

CHAPTER 05 Percent Support

Library使用詳解

CHAPTER 06 Design Support

Library使用詳解

6.1 Snackbar

6.2 TextInputLayout

6.3 TabLayout

6.4 NavigationView .

6.5 FloatingActionButton

6.6 CoordinatorLayout

6.7 CollapsingToolbarLayout

6.8 BottomSheetBehavior

CHAPTER 07 AndroidStudio中的NDK開發

7.1 ABI的基本概念

7.2 引用預先編譯的二進位C/C++函數程式庫

7.3 直接從C/C++原始程式編譯

7.4 使用.so檔案的注意事項

CHAPTER 08 Gradle一定要會

8.1 共用變數的定義

8.2 通用設定

8.3 aar函數程式庫的參考

8.4 簽名和混淆的設定

09 透過Gradle套件裝發佈函數程式庫到JCenterMaven Central

9.1 Maven CentralJCenter

9.2 AndroidStudio取得函數程式庫的原理

9.3 上傳函數程式庫到JCenter

CHAPTER 10 Builder模式詳解

10.1 經典的Builder模式

10.2 Builder模式的變種

10.3 變種Builder模式的自動化產生

10.4 開放原始碼函數程式庫的實例

CHAPTER 11 註釋在Android中的應用

11.1 註釋的定義

11.2 標準註釋

11.3 執行時期註釋

11.4 編譯時註釋

 

CHAPTER 12 ANR 產生的原因及其定位分析

12.1 ANR 產生的原因

12.2 典型的ANR問題場景

12.3 ANR的定位和分析

12.4 ANR的避免和檢測

CHAPTER 13 Android非同步處理技術

13.1 Thread

13.2 HandlerThread

13.3 AsyncQueryHandler

13.4 IntentService

13.5 Executor Framework

13.6 AsyncTask

13.7 Loader

13.8 歸納

CHAPTER 14 Android資料序列化方案研究

14.1 Serializable

14.2 Parcelable

14.3 SQLiteDatabase

14.4 SharedPreferences

14.5 JSON

14.6 Protocol Buffers

Nano-Proto-Buffers

14.7 FlatBuffers

CHAPTER 15 AndroidWebView JavaJavaScript互動詳解

15.1 Java呼叫JavaScript

15.2 JavaScript 呼叫Java

2 系統架構篇

CHAPTER 16 MVP模式及其在Android中的實作

16.1 MVP的基本概念

16.2 MVPMVC的區別

16.3 MVP的開放原始碼實現

16.4 MVP的好處

16.5 MVP存在的問題

CHAPTER 17 MVVM模式及

AndroidDataBinding實戰

17.1 Data Binding運算式

17.2 資料物件

17.3 資料綁定

17.4 事件綁定

CHAPTER 18 觀察者模式的擴充:事件匯流排

18.1 為何要使用

18.2 原理

18.3 開放原始碼實現

18.4 與觀察者模式及Android廣播的區別

CHAPTER 19 撰寫簡潔標準的程式

19.1 Java編碼標準

19.2 Android命名標準

19.3 CheckStyle的使用

CHAPTER 20 以開放原始碼專案架設屬於自己為基礎的技術堆疊

20.1 APP的整體架構

20.2 技術選型的考量點

20.3 記錄檔記錄能力

20.4 JSON解析能力

20.5 資料庫操作能力

20.6 網路通訊能力

20.7 圖片快取和顯示能力

3 經驗歸納篇

CHAPTER 21 64K方法數限制原理與解決方案

21.1 64K限制的原因

21.2 使用MultiDex解決64K限制的問題

21.3 如何避免出現64K限制

21.4 設定MultiDex

21.5 MultiDex Support Library的限制

21.6 在開發階段最佳化MultiDex的建置

CHAPTER 22 Android外掛程式架構機制研究與實作

22.1 基本概念

22.2 開放原始碼架構

CHAPTER 23 發送機制實現原理詳解

23.1 發送的開放原始碼實現方案

23.2 發送的協力廠商平台

23.3 自己實現發送功能

CHAPTER 24 APP瘦身經驗歸納

24.1 APP為什麼變胖了

24.2 APK檔案的結構說起

24.3 最佳化圖片資源佔用的空間

24.4 使用Lint刪除無用資源

24.5 利用AndroidGradle設定

24.6 重構和最佳化程式

24.7 資源混淆

24.8 外掛程式化

CHAPTER 25 AndroidCrash記錄檔收集原理與實作

25.1 JavaCrash捕捉機制

25.2 NativeCrash捕捉機制

25.3 Crash的上報

4 新技術篇

CHAPTER 26 函數式程式設計思想及其在Android中的應用

26.1 程式的簡化

26.2 Operators簡介

CHAPTER 27 依賴植入及其在Android中的應用

27.1 基本概念

27.2 為何需要架構

27.3 開放原始碼架構的選擇

CHAPTER 28 Android世界的SwiftKotlinAndroid中的應用

28.1 選擇Kotlin 的原因

28.2 Kotlin的安裝和設定

28.3 Kotlin語言的特性

28.4 KotlinGradle設定

28.5 Java類別轉換成Kotlin類別

28.6 相關資料

CHAPTER 29 React Native For Android入門指南

29.1 環境設定

29.2 Android開發環境的要求

29.3 React Native 專案設定

29.4 AndroidStudio專案概覽

29.5 React Native依賴函數庫修改為本機

29.6 React Native學習建議

CHAPTER 30 Android線上熱修復方案研究

30.1 線上熱修復的基本流程

30.2 Dexposed

30.3 AndFix

30.4 Nuwa

30.5 歸納

31 針對切面程式設計及其在Android中的應用

31.1 AOP的基本概念

31.2 程式織入的時機

31.3 基於AspectJ實現Android平台的AOP

31.4 其他AOP開放原始碼架構

CHAPTER 32 基於Facebook Buck改造Android建置系統

32.1 Buck環境設定

32.2 快速建立以Buck建置為基礎的Android專案

32.3 Buck的基本概念

32.4 專案改造實戰

32.5 Buck的自動化改造

5 效能最佳化篇

CHAPTER 33 程式最佳化

33.1 資料結構的選擇

33.2 Handler和內部類別的正確用法

33.3 正確地使用Context

33.4 掌握Java的四種參考方式

33.5 其他程式微最佳化

CHAPTER 34 圖片最佳化

34.1 圖片的格式

34.2 圖片的壓縮

34.3 圖片的快取

CHAPTER 35 電量最佳化

35.1 BroadcastReceiver

35.2 資料傳輸

35.3 位置服務

35.4 AlarmManager

35.5 WakeLock

CHAPTER 36 版面配置最佳化

36.1 include標籤共用版面配置

36.2 ViewStub標籤實現延遲載入

36.3 merge標籤減少版面配置層次

36.4 儘量使用CompoundDrawable

36.5 使用Lint

CHAPTER 37 網路最佳化

37.1 避免DNS解析

37.2 合併網路請求

37.3 預先取得資料

37.4 避免輪詢

37.5 最佳化重連機制

37.6 離線快取

37.7 壓縮資料大小

37.8 不同的網路環境使用不同的逾時策略

37.9 CDN的使用

6 移動安全篇

CHAPTER 38 Android混淆機制詳解

38.1 Java程式的混淆

38.2 NativeC/C++)程式的混淆

38.3 資源檔的混淆

CHAPTER 39 Android反編譯機制詳解

39.1 資源檔的反編譯

39.2 Java程式的反編譯

CHAPTER 40 用戶端敏感資訊隱藏技術研究

40.1 敏感資訊巢狀結構在strings.xml

40.2 敏感資訊隱藏在Java原始程式碼中

40.3 敏感資訊隱藏在BuildConfig

40.4 使用DexGuard

40.5 對敏感資訊進行偽裝或加密

40.6 敏感資訊隱藏在原生函數程式庫中(.so檔案)

40.7 APK進行強化處理

CHAPTER 41 Android強化技術研究

41.1 愛加密的主要功能

41.2 常見APP漏洞及風險

41.3 Android程式反破解技術

41.4 強化技術研究知識儲備

CHAPTER 42 Android安全的程式

42.1 WebView遠端程式執行

42.2 WebView密碼明文儲存

42.3 Android本機拒絕服務

42.4 SharedPreference全域任意讀寫

42.5 金鑰強制寫入

42.6 AES/DES/RSA弱加密

42.7 隨機函數使用錯誤

42.8 WebView忽略SSL憑證

42.9 HTTPS憑證弱驗證

42.10 PendingIntent使用不當

7 工具篇

CHAPTER 43 Android偵錯工具Facebook Stetho

43.1 視圖版面配置監視

43.2 資料庫監視

43.3 網路監視

43.4 dumpapp

43.5 Javascript主控台

43.6 最佳做法

CHAPTER 44 記憶體洩漏檢測函數程式庫LeakCanary

44.1 基本概念

44.2 LeakCanary的整合

44.3 LeakCanary的原理

44.4 LeakCanary的訂製

CHAPTER 45 基於Facebook

Redex實現AndroidAPK的壓縮和最佳化

45.1 轉換的時機

45.2 管線的思想

45.3 減少位元組碼的意義

45.4 混淆和壓縮

45.5 使用內聯函數

45.6 無用程式的消除

45.7 Redex 的整合和使用

CHAPTER 46 AndroidStudio你所需要知道的功能

46.1 Annotate

46.2 .ignore外掛程式

46.3 Live Templates

46.4 整合Bug管理系統

8 測試篇

47 Android單元測試架構簡介

47.1 Java單元測試架構JUnit

47.2 Android單元測試架構Robolectric 3.0

47.3 Java模擬測試架構Mockito1

CHAPTER 48 AndroidUI自動化測試架構簡介

48.1 Monkey

48.2 MonkeyRunner

48.3 UIAutomator

48.4 Robotium

48.5 Espresso

48.6 Appium

CHAPTER 49 Android靜態程式分析實戰

49.1 Java程式標準檢查工具CheckStyle

49.2 Java靜態程式分析工具FindBugs

49.3 Java靜態程式分析工具PMD

49.4 Android程式最佳化工具Lint

CHAPTER 50 基於Jenkins+Gradle架設Android持續整合編譯環境

50.1 Tomcat的下載和啟動

50.2 Jenkins的下載和執行

50.3 Jenkins外掛程式的安裝

50.4 Jenkins全域設定

50.5 JOB相關的操作

50.6 Jenkins預先定義的環境變數

TOP