全能Android絕對正確培養聖經(旗艦版) ( 繁體 字) |
作者:顧浩鑫 | 類別:1. -> 程式設計 -> 手機程式 -> Android |
譯者: |
出版社:佳魁資訊 | 3dWoo書號: 51826 詢問書籍請說出此書號!【缺書】 【不接受訂購】 |
出版日:4/5/2019 |
頁數:512 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 繁體 版 ) |
|
【不接受訂購】 |
ISBN:9789863797456 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:Android應用程式開發發展到今天,已經成為一個非常成熟的技術 方向,市面上湧現了大量關於Android開發的圖書,整體來說可以 分為以下幾種。 ■ 入門實戰類別:這類圖書是市面上最多的,也是開發者比較青 睞的一種圖書,基本上介紹的都是Android的基礎知識,例如 介面開發、資料儲存、網路通訊、資料庫操作、感測器使用
等,最後附上一兩個簡單實戰專案的介紹。建議讀者在入門 的時候買一本評價還不錯的入門實戰書學習一遍,然後結合 實際專案進行知識加強即可,之後這種書基本上扮演的是工 具書的角色,就是在忘記某個基礎知識的時候到書中查一查 重新溫習一遍。 ■ 原始程式分析類別:這類圖書又可以分為Framework層原始程式 分析類別和Native層原始程式分析類別兩種,這類圖書主要針 對從事Android系統開發的讀者。當然,從事應用程式開發的 讀者如果對Android Framework等底層的實現原理有所了解的 話那也是大有裨益的,而且相對而言更有優勢。 ■ 安全和逆向分析類別:這類圖書主要介紹的是Android平台的軟 體安全、逆向分析及加解密技術等,主要有關Android軟體的 靜態分析、動態偵錯、破解及反破解等技術。這個方向的知 識既有Android應用程式開發者所需要的,也有Android系統開 發者所需要的,職場上也有專門的Android系統安全相關的職 務。 ■ 系統移植和驅動類別:這類圖書主要介紹的是Android核心、移 植和驅動開發的整個底層嵌入式開發知識,這一種基礎知識 其實並不能算作移動端開發,本質上屬於傳統的嵌入式開發 領域,畢竟Android底層就是一個Linux系統。 以上便是目前筆者所看到的Android圖書市場所覆蓋的內容,可以 說是大而全。但事實上在筆者看來,還有一種圖書是目前沒有出 現的,那就是表現第一線網際網路公司專案實作中有關的重要基 礎知識,筆者將之歸類為第5類別:專案實作類別。希望本書能夠 彌補這個空白,並期待能夠看到更多這類圖書的出現。 ◎ 本書內容 本書從結構上分為8篇,共50個基礎知識。 ■ 基礎篇:這是百分比最大的篇章,雖然名為基礎篇,但你應該 了解為是進階裡面的基礎知識,而非Android開發入門的基礎 知識。本篇主要包含Android View、動畫、Support Library、Gradle、NDK、ANR、非同步技術、註釋、資料序列 化和Hybrid 等知識點。 ■ 系統架構篇:本篇偏重介紹架構和專案整體的相關知識,主要 包含 UI架構、事件匯流排、程式開發標準和技術堆疊等基礎 知識。 ■ 經驗歸納篇:本篇偏重介紹 Android專案實作中得出的經驗,主 要包含64K方法數限制、外掛程式架構、發送原理、APP瘦身 、Crash統計等基礎知識。 ■ 新技術篇:本篇偏重介紹新近出現的技術點,當然可能本書出 版時已經不是最新了,但並不妨礙其重要性,主要包含函數 式程式設計思想簡介、依賴植入、Kotlin、React Native、線上 熱修復、AOP和Facebook Buck等基礎知識。 ■ 效能最佳化篇:本篇偏重介紹目前 Android平台常見的效能最佳 化相關知識,主要包含程式最佳化、圖片最佳化、電量最佳 化、版面配置最佳化和網路最佳化等基礎知識。 ■ 移動安全篇:本篇偏重介紹很多應用中經常會忽略的安全知識
,主要包含混淆、反編譯、金鑰隱藏、強化和如何撰寫安全 的程式等基礎知識。 ■ 工具篇:本篇介紹了Android開發中會用到的幾個工具,主要包 含 Android Studio、Stetho、LeakCanary和Redex等基礎知識。 ■ 測試篇:本篇介紹了測試相關的知識,這部分是很多開發人員 經常容易忽略的內容,本質上屬於測試領域,但開發人員需 要有所了解,主要包含Android單元測試、UI自動化測試、靜 態程式分析和自動化建置等工具。 |
內容簡介:紮實基礎/極霸效能/高超應用/深度強化 ◆ 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套件裝發佈函數程式庫到JCenter和Maven Central 9.1 Maven Central和JCenter 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 Java和JavaScript互動詳解 15.1 Java呼叫JavaScript 15.2 JavaScript 呼叫Java 第2篇 系統架構篇 CHAPTER 16 MVP模式及其在Android中的實作 16.1 MVP的基本概念 16.2 MVP與MVC的區別 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 Java層Crash捕捉機制 25.2 Native層Crash捕捉機制 25.3 Crash的上報 第4篇 新技術篇 CHAPTER 26 函數式程式設計思想及其在Android中的應 用 26.1 程式的簡化 26.2 Operators簡介 CHAPTER 27 依賴植入及其在Android中的應用 27.1 基本概念 27.2 為何需要架構 27.3 開放原始碼架構的選擇 CHAPTER 28 Android世界的Swift:Kotlin在Android中的 應用 28.1 選擇Kotlin 的原因 28.2 Kotlin的安裝和設定 28.3 Kotlin語言的特性 28.4 Kotlin的Gradle設定 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 Native(C/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預先定義的環境變數 |
序: |