全能Android絕對正確培養聖經

  • 9 648
    720

配送方式

  • 台灣
    • 國內宅配:本島、離島
    • 到店取貨:
      金石堂門市 不限金額免運費
      7-11便利商店 ok便利商店 萊爾富便利商店 全家便利商店
  • 海外
    • 國際快遞:全球
    • 港澳店取:
      ok便利商店 順豐 7-11便利商店

內容簡介

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 新技術篇

序/導讀

前言

Android 應用程式開發發展到今天,已經成為一個非常成熟的技術方向,市面上湧現了大量關於Android 開發的圖書,整體來說可以分為以下幾種。

■ 入門實戰類別:這類圖書是市面上最多的,也是開發者比較青睞的一種圖書,基本上介紹的都是Android 的基礎知識,例如介面開發、資料儲存、網路通訊、資料庫操作、感測器使用等,最後附上一兩個簡單實戰專案的介紹。建議讀者在入門的時候買一本評價還不錯的入門實戰書學習一遍,然後結合實際專案進行知識加強即可,之後這種書基本上扮演的是工具書的角色,就是在忘記某個基礎知識的時候到書中查一查重新溫習一遍。

■ 原始程式分析類別:這類圖書又可以分為Framework 層原始程式分析類別和Native 層原始程式分析類別兩種,這類圖書主要針對從事Android 系統開發的讀者。當然,從事應用程式開發的讀者如果對Android Framework 等底層的實現原理有所了解的話那也是大有裨益的,而且相對而言更有優勢。

■ 安全和逆向分析類別:這類圖書主要介紹的是Android 平台的軟體安全、逆向分析及加解密技術等,主要有關Android 軟體的靜態分析、動態偵錯、破解及反破解等技術。這個方向的知識既有Android 應用程式開發者所需要的,也有Android 系統開發者所需要的,職場上也有專門的Android 系統安全相關的職務。

■ 系統移植和驅動類別:這類圖書主要介紹的是Android 核心、移植和驅動開發的整個底層嵌入式開發知識,這一種基礎知識其實並不能算作移動端開發,本質上屬於傳統的嵌入式開發領域,畢竟Android 底層就是一個Linux 系統。

以上便是目前筆者所看到的Android 圖書市場所覆蓋的內容,可以說是大而全。但事實上在筆者看來,還有一種圖書是目前沒有出現的,那就是表現第一線網際網路公司專案實作中有關的重要基礎知識,筆者將之歸類為第5 類別:專案實作類別。希望本書能夠彌補這個空白,並期待能夠看到更多這類圖書的出現。

✤ 本書內容

本書從結構上分為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 應用研發專案師

■ 電腦相關科系的學生

✤ 致謝

感謝董英編輯找到我並建議我出一本關於Android 開發相關的圖書,不然也不會有這本書的存在;感謝妻子戀戀對我的寫作和生活的鼓勵和陪伴;感謝父母和老師對我的培養;感謝我曾經就職的公司:華為、百度、平安科技,以及現在所在的平安金融科技;感謝華為PTN、華為發送、百度文函數庫、百度導覽、百度坐計程車、Hyperion、任意門、銀行一賬通等專案的兄弟姐妹們,是過往的這些公司和團隊磨礪了我。

✤ 勘誤與互動

讀者如果發現本書文字、程式和圖片等資訊存在錯誤或紕漏,歡迎回饋給我。對書中內容或Android 應用程式開發中有什麼疑問,也可以與我互動,我會定期發佈本書的勘誤資訊,並解答大家的疑問。

我的相關資訊如下:GitHub:github.com/ASCE1885

試閱

前言

Android 應用程式開發發展到今天,已經成為一個非常成熟的技術方向,市面上湧現了大量關於Android 開發的圖書,整體來說可以分為以下幾種。

■ 入門實戰類別:這類圖書是市面上最多的,也是開發者比較青睞的一種圖書,基本上介紹的都是Android 的基礎知識,例如介面開發、資料儲存、網路通訊、資料庫操作、感測器使用等,最後附上一兩個簡單實戰專案的介紹。建議讀者在入門的時候買一本評價還不錯的入門實戰書學習一遍,然後結合實際專案進行知識加強即可,之後這種書基本上扮演的是工具書的角色,就是在忘記某個基礎知識的時候到書中查一查重新溫習一遍。

■ 原始程式分析類別:這類圖書又可以分為Framework 層原始程式分析類別和Native 層原始程式分析類別兩種,這類圖書主要針對從事Android 系統開發的讀者。當然,從事應用程式開發的讀者如果對Android Framework 等底層的實現原理有所了解的話那也是大有裨益的,而且相對而言更有優勢。

■ 安全和逆向分析類別:這類圖書主要介紹的是Android 平台的軟體安全、逆向分析及加解密技術等,主要有關Android 軟體的靜態分析、動態偵錯、破解及反破解等技術。這個方向的知識既有Android 應用程式開發者所需要的,也有Android 系統開發者所需要的,職場上也有專門的Android 系統安全相關的職務。

■ 系統移植和驅動類別:這類圖書主要介紹的是Android 核心、移植和驅動開發的整個底層嵌入式開發知識,這一種基礎知識其實並不能算作移動端開發,本質上屬於傳統的嵌入式開發領域,畢竟Android 底層就是一個Linux 系統。

以上便是目前筆者所看到的Android 圖書市場所覆蓋的內容,可以說是大而全。但事實上在筆者看來,還有一種圖書是目前沒有出現的,那就是表現第一線網際網路公司專案實作中有關的重要基礎知識,筆者將之歸類為第5 類別:專案實作類別。希望本書能夠彌補這個空白,並期待能夠看到更多這類圖書的出現。

✤ 本書內容

本書從結構上分為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 應用研發專案師

■ 電腦相關科系的學生

✤ 致謝

感謝董英編輯找到我並建議我出一本關於Android 開發相關的圖書,不然也不會有這本書的存在;感謝妻子戀戀對我的寫作和生活的鼓勵和陪伴;感謝父母和老師對我的培養;感謝我曾經就職的公司:華為、百度、平安科技,以及現在所在的平安金融科技;感謝華為PTN、華為發送、百度文函數庫、百度導覽、百度坐計程車、Hyperion、任意門、銀行一賬通等專案的兄弟姐妹們,是過往的這些公司和團隊磨礪了我。

✤ 勘誤與互動

讀者如果發現本書文字、程式和圖片等資訊存在錯誤或紕漏,歡迎回饋給我。對書中內容或Android 應用程式開發中有什麼疑問,也可以與我互動,我會定期發佈本書的勘誤資訊,並解答大家的疑問。

我的相關資訊如下:GitHub:github.com/ASCE1885

詳細資料

詳細資料

    • 語言
    • 中文繁體
    • 裝訂
    • 紙本平裝
    • ISBN
    • 9789863795230
    • 分級
    • 普通級
    • 頁數
    • 512
    • 商品規格
    • 23*19
    • 出版地
    • 台灣
    • 適讀年齡
    • 全齡適讀
    • 注音
    • 級別

商品評價

訂購/退換貨須知

加入金石堂 LINE 官方帳號『完成綁定』,隨時掌握出貨動態:

加入金石堂LINE官方帳號『完成綁定』,隨時掌握出貨動態
金石堂LINE官方帳號綁定教學

提醒您!!
金石堂及銀行均不會請您操作ATM! 如接獲電話要求您前往ATM提款機,請不要聽從指示,以免受騙上當!

退換貨須知:

**提醒您,鑑賞期不等於試用期,退回商品須為全新狀態**

  • 依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
    1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
    2. 依消費者要求所為之客製化給付。(客製化商品)
    3. 報紙、期刊或雜誌。(含MOOK、外文雜誌)
    4. 經消費者拆封之影音商品或電腦軟體。
    5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
    6. 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
  • 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
  • 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
  • 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。
※ 本商品讀享日金幣加碼回饋最高7倍
金石堂門市 全家便利商店 ok便利商店 萊爾富便利商店 7-11便利商店
World wide