全能 Android 絕對正確培養聖經

顧浩鑫

  • 出版商: 佳魁資訊
  • 出版日期: 2017-05-30
  • 定價: $720
  • 售價: 7.9$569
  • 語言: 繁體中文
  • 頁數: 512
  • ISBN: 9863795232
  • ISBN-13: 9789863795230
  • 相關標籤: Android

立即出貨 (庫存 > 10)

  • 9789863795230 bc
  • 9789863795230 bi1
  • 9789863795230 bi2
  • 9789863795230 bi3
  • 9789863795230 bi4
  • 9789863795230 bi5
  • 9789863795230 bi6
  • 9789863795230 bi7
  • 9789863795230 bi8
  • 9789863795230 bi9
  • 9789863795230 bi10
  • 9789863795230 bi11
  • 9789863795230 bi12
  • 9789863795230 bi13
  • 9789863795230 bi14
  • 9789863795230 bi15
  • 9789863795230 bi16
  • 9789863795230 bi17
  • 9789863795230 bi18
  • 9789863795230 bi19
  • 9789863795230 bi20
  • 9789863795230 bi21
  • 9789863795230 bi22
  • 9789863795230 b1
  • 9789863795230 b2
  • 9789863795230 b3
  • 9789863795230 b4
  • 9789863795230 b5
  • 9789863795230 b6
  • 9789863795230 bf
9789863795230 bc

買這商品的人也買了...

產品描述

Android的書這麼多,要找到真正幫你培養全職能的書卻不容易。
這是一本來自第一線網路公司的真正實作產品方案的完整過程,而非簡單說明一下Android的函數庫,開發原理等基礎書籍。全書包括了規劃、設計、測試、佈署、多人協作、好用工具等等,這林林總總,都是從血淋淋的網際網路產品戰場上打下的基礎。
看完本書,就具備了世界前500大網路公司的寶貴開發經驗,是想成為全能Android高手的必讀。
本書從結構上分為8 篇,共50 個基礎知識。
■ 基礎篇:這是百分比最大的篇章,雖然名為基礎篇,但你應該了解為是進階裡面的基礎知識,而非Android 開發入門的基礎知識。本篇主要包含AndroidView、動畫、Support Library、Gradle、NDK、ANR、非同步技術、註釋、資料序列化和Hybrid 等知識點。
■ 系統架構篇:本篇偏重介紹架構和專案整體的相關知識,主要包含UI 架構、事件匯流排、程式開發標準和技術堆疊等基礎知識。
■ 經驗歸納篇:本篇偏重介紹Android 專案實作中得出的經驗,主要包含64K方法數限制、外掛程式架構、發送原理、APP 瘦身、Crash 統計等基礎知識。
■ 新技術篇:本篇偏重介紹新近出現的技術點,當然可能本書出版時已經不是最新了,但並不妨礙其重要性,主要包含函數式程式設計思想簡介、依賴植入、Kotlin、React Native、線上熱修復、AOP 和Facebook Buck 等基礎知識。
■ 效能最佳化篇:本篇偏重介紹目前Android 平台常見的效能最佳化相關知識,主要包含程式最佳化、圖片最佳化、電量最佳化、版面配置最佳化和網路最佳化等基礎知識。
■ 移動安全篇:本篇偏重介紹很多應用中經常會忽略的安全知識,主要包含混淆、反編譯、金鑰隱藏、強化和如何撰寫安全的程式等基礎知識。
■ 工具篇:本篇介紹了Android 開發中會用到的幾個工具,主要包含AndroidStudio、Stetho、LeakCanary 和Redex 等基礎知識。
■ 測試篇:本篇介紹了測試相關的知識,這部分是很多開發人員經常容易忽略的內容,本質上屬於測試領域,但開發人員需要有所了解,主要包含Android 單元測試、UI 自動化測試、靜態程式分析和自動化建置等工具。
適用: Android 應用研發專案師、電腦相關科系的學生。

作者簡介

顧浩鑫 網路 ID:ASCE1885
平安金融科技行動研發工程師,目前主要從事 Android & React Native 相關研發工作,先後就職於華為、百度、平安科技。

目錄大綱

前言
第1 篇 基礎篇
01 Android 觸控事件傳遞機制
1.1 觸控事件的類型
1.2 事件傳遞的三個階段
1.3 View 的事件傳遞機制
1.4 ViewGroup 的事件傳遞機制
02 Android View 的繪製流程
2.1 繪製的整體流程
2.2 MeasureSpec
2.3 Measure
2.4 Layout
2.5 Draw
03 Android 動畫機制
3.1 逐頁框動畫(Frame Animation)
3.2 補間動畫(Tween Animation)1.2 JSX 語法
3.3 屬性動畫(Property Animation)
3.4 過場動畫(Transition Animation)
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
05 Percent Support Library 使用詳解
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
07 Android Studio 中的NDK 開發
7.1 ABI 的基本概念
7.2 引用預先編譯的二進位C/C++ 函數程式庫
7.3 直接從C/C++ 原始程式編譯
7.4 使用.so 檔案的注意事項
08 Gradle 一定要會
8.1 共用變數的定義
8.2 通用設定3.6 React Patch 方法
8.3 aar 函數程式庫的參考
8.4 簽名和混淆的設定
09 透過Gradle 套件裝發佈函數程式庫到JCenter 和Maven Central
9.1 Maven Central 和JCenter
9.2 Android Studio 取得函數程式庫的原理
9.3 上傳函數程式庫到JCenter
10 Builder 模式詳解
10.1 經典的Builder 模式
10.2 Builder 模式的變種
10.3 變種Builder 模式的自動化產
10.4 開放原始碼函數程式庫的實
11 註釋在Android 中的應用
11.1 註釋的定義
11.2 標準註釋
11.3 執行時期註釋
11.4 編譯時註釋
12 ANR 產生的原因及其定位分析
12.1 ANR 產生的原因
12.2 典型的ANR 問題場景
12.3 ANR 的定位和分析
12.4 ANR 的避免和檢測
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 歸納
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
15 Android WebView Java 和JavaScript 互動詳解
15.1 Java 呼叫JavaScript
15.2 JavaScript 呼叫Java
第2 篇 系統架構篇
16 MVP 模式及其在Android 中的實作
16.1 MVP 的基本概念
16.2 MVP 與MVC 的區別
16.3 MVP 的開放原始碼實現
16.4 MVP 的好處
16.5 MVP 存在的問題
17 MVVM 模式及Android DataBinding 實戰
17.1 Data Binding 運算式
17.2 資料物件
17.3 資料綁定
17.4 事件綁定
18 觀察者模式的擴充:事件匯流排
18.1 為何要使用
18.2 原理
18.3 開放原始碼實現
18.4 與觀察者模式及Android 廣播的區
19 撰寫簡潔標準的程式
19.1 Java 編碼標準
19.2 Android 命名標準
19.3 CheckStyle 的使用
20 以開放原始碼專案架設屬於自己為基礎的技術堆疊
20.1 APP 的整體架構
20.2 技術選型的考量點
20.3 記錄檔記錄能力
20.4 JSON 解析能力
20.5 資料庫操作能力
20.6 網路通訊能力
20.7 圖片快取和顯示能力A.4 測試環境:Karma
第3 篇 經驗歸納篇
21 64K 方法數限制原理與解決方案
21.1 64K 限制的原因
21.2 使用MultiDex 解決64K 限制的問題
21.3 如何避免出現64K 限制
21.4 設定MultiDex
21.5 MultiDex Support Library 的限制
21.6 在開發階段最佳化MultiDex 的建置
22 Android 外掛程式架構機制研究與實作
22.1 基本概念
22.2 開放原始碼架構
23 發送機制實現原理詳解
23.1 發送的開放原始碼實現方案
23.2 發送的協力廠商平台 .
23.3 自己實現發送功能
24 APP 瘦身經驗歸納
24.1 APP 為什麼變胖了
24.2 從APK 檔案的結構說起
24.3 最佳化圖片資源佔用的空間
24.4 使用Lint 刪除無用資源
24.5 利用Android Gradle 設定
24.6 重構和最佳化程式
24.7 資源混淆
24.8 外掛程式化
25 Android Crash記錄檔收集原理與實作
25.1 Java 層Crash 捕捉機制
25.2 Native 層Crash 捕捉機制
25.3 Crash 的上報
第4 篇 新技術篇
26 函數式程式設計思想及其在Android 中的應用
26.1 程式的簡化
26.2 Operators 簡介
27 依賴植入及其在Android 中的應用
27.1 基本概念
27.2 為何需要架構
27.3 開放原始碼架構的選擇
28 Android世界的Swift:Kotlin 在Android 中的應用
28.1 選擇Kotlin 的原因
28.2 Kotlin 的安裝和設定
28.3 Kotlin 語言的特性
28.4 Kotlin 的Gradle 設定
28.5 將Java 類別轉換成Kotlin 類
28.6 相關資料
29 React Native For Android 入門指南
29.1 環境設定
29.2 Android 開發環境的要求
29.3 React Native 專案設定
29.4 Android Studio 專案概覽
29.5 React Native 依賴函數庫修改為本
29.6 React Native 學習建議
30 Android 線上熱修復方案研究
30.1 線上熱修復的基本流程
30.2 Dexposed
30.3 AndFix
3.4 Nuwa
30.5 歸納
31 針對切面程式設計及其在Android 中的應用
31.1 AOP 的基本概念
31.2 程式織入的時機
31.3 基於AspectJ 實現Android 平台的AOP
31.4 其他AOP 開放原始碼架構
32 基於Facebook Buck 改造Android 建置系統
32.1 Buck 環境設定
32.2 快速建立以Buck 建置為基礎的Android 專案
32.3 Buck 的基本概念
32.4 專案改造實戰
32.5 Buck 的自動化改造
第5 篇 效能最佳化篇
33 程式最佳化
33.1 資料結構的選擇
33.2 Handler 和內部類別的正確用法
33.3 正確地使用Context
33.4 掌握Java 的四種參考方式
33.5 其他程式微最佳化
34 圖片最佳化
34.1 圖片的格式
34.2 圖片的壓縮
34.3 圖片的快取
35 電量最佳化
35.1 BroadcastReceiver
35.2 資料傳輸
35.3 位置服務
35.4 AlarmManager
35.5 WakeLock
36 版面配置最佳化
36.1 include 標籤共用版面配置
36.2 ViewStub 標籤實現延遲載入
36.3 merge 標籤減少版面配置層次
36.4 儘量使用CompoundDrawable
36.5 使用Lint
37 網路最佳化
37.1 避免DNS 解析
37.2 合併網路請求
37.3 預先取得資料
37.4 避免輪詢
37.5 最佳化重連機制
37.6 離線快取
37.7 壓縮資料大小
37.8 不同的網路環境使用不同的逾時策略
37.9 CDN 的使用
第6 篇 移動安全篇
38 Android 混淆機制詳解
38.1 Java 程式的混淆
38.2 Native(C/C++)程式的混淆
38.3 資源檔的混淆
39 Android 反編譯機制詳解
39.1 資源檔的反編譯
39.2 Java 程式的反編譯
40 用戶端敏感資訊隱藏技術研究
40.1 敏感資訊巢狀結構在strings.xml 中
40.2 敏感資訊隱藏在Java 原始程式碼中
40.3 敏感資訊隱藏在BuildConfig 中
40.4 使用DexGuard
40.5 對敏感資訊進行偽裝或加密
40.6 敏感資訊隱藏在原生函數程式庫中(.so 檔案)
40.7 對APK 進行強化處理
41 Android 強化技術研究
41.1 愛加密的主要功能
41.2 常見APP 漏洞及風險
41.3 Android 程式反破解技術
41.4 強化技術研究知識儲備
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 篇 工具篇
43 Android 偵錯工具Facebook Stetho
43.1 視圖版面配置監視
43.2 資料庫監視
43.3 網路監視
43.4 dumpapp
43.5 Javascript 主控台
43.6 最佳做法
44 記憶體洩漏檢測函數程式庫LeakCanary
44.1 基本概念
44.2 LeakCanary 的整合
44.3 LeakCanary 的原理
44.4 LeakCanary 的訂製
45 基於Facebook Redex 實現Android APK 的壓縮和最佳化
45.1 轉換的時機
45.2 管線的思想
45.3 減少位元組碼的意義
45.4 混淆和壓縮
45.5 使用內聯函數
45.6 無用程式的消除
45.7 Redex 的整合和使用
46 Android Studio 你所需要知道的功能
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
48 Android UI 自動化測試架構簡介
48.1 Monkey
48.2 MonkeyRunner
48.3 UIAutomator
48.4 Robotium
48.5 Espresso
48.6 Appium
49 Android 靜態程式分析實戰
49.1 Java 程式標準檢查工具CheckStyle
49.2 Java 靜態程式分析工具FindBugs
49.3 Java 靜態程式分析工具PMD
49.4 Android 程式最佳化工具Lint
50 基於Jenkins+Gradle 架設Android 持續整合編譯環境
50.1 Tomcat 的下載和啟動
50.2 Jenkins 的下載和執行
50.3 Jenkins 外掛程式的安裝
50.4 Jenkins 全域設定
50.5 JOB 相關的操作
50.6 Jenkins 預先定義的環境變數