1103~1105_神奇柑仔店1920完結篇

比開發者更高境界:Google工程師分析Android5.0原始碼

  • 9 774
    860

活動訊息

金石堂,總有一本書懂你!雙11更好買,25家銀行信用卡分期0利率!

內容簡介

■頂尖Android開發專家的Android系統分析權威指南
■講解新版本熱點技術,解決系統開發困惑問題

專家推薦
    
這本書介紹Android 系統的充實和認真程度可能在市面上無出其右。
從Android下載安裝到設定編譯,從JNI/Boinic到Loop/Init,從SystemServer到Provider,從套件管理到圖形系統,從視窗系統到輸入管理,從電源管理到睡眠喚醒機制,從網路管理到音、視訊系統,甚至從Vold 到Recovery,從虛擬機器到自動化測試,都詳細解釋說明。
作為一個工作十多年的資深工程師、從1.0 版本開始接觸Android 系統的工程師、量產過多款產品的Android 第一線架構師,我想沒有這樣的經歷是很難將這本書撰寫得如此詳盡。
希望讀者可以從中獲得有益的啟發,開啟自己完美的Android 開發之旅!~~ 小米電視系統軟體部總監,茹憶

這是一本有6年Android 系統開發經驗、頂尖Android 系統工程師的心血之作!可以推薦給任何從事Android 系統開發或應用程式開發工程師看的書!~~原Motorola 軟體總監,播思通訊CTO,饒宏

一本非常優秀的介紹Android 內部機制的圖書,詳細地分析了Android 系統的大部分模組,值得每一個希望深入學習Android 系統的工程師擁有。~~德信無線軟體部經理,陳行星

目錄

前言

Chapter 01   建立Android 系統開發環境
1.1 安裝作業系統
1.2 安裝開發套件
1.3 安裝一些有用的工具
1.4 下載原始程式

Chapter 02   Android 的編譯環境:Build 系統
2.1 Android Build 系統核心
2.2 Android 的產品設定檔
2.3 編譯Android 的模組
2.4 Android 中的簽名

Chapter 03   連接Android Linux 核心的橋樑:Android Bionic
3.1 Bionic 簡介
3.2 Bionic C 函數庫中的系統呼叫
3.3 Bionic 中的記憶體管理函數
3.4 管線
3.5 Bionic 中的執行緒管理函數
3.6 Futex 同步機制
3.7 Android 的Log 模組
3.8 可執行檔格式分析
3.9 Bionic 中的Linker 模組
3.10 偵錯器 —— Ptrace 和Hook API

Chapter 04   處理程序間通訊:Android Binder
4.1 Binder 簡介
4.2 如何使用Binder
4.3 Binder 應用層的核心類別
4.4 Binder 的實現原理
4.5 Binder 驅動
4.6 解析名稱的模組 —— ServiceManager 的作用
4.7 匿名共用記憶體ashmem

Chapter 05   連接Java C/C++ 層的關鍵:Android JNI
5.1 JNI 的作用
5.2 JNI 用法介紹
5.3 JNI 環境
5.4 ART 帶來的JNI 變化

Chapter 06   Android 的同步和訊息機制
6.1 最小操作
6.2 Android native 層的同步方法
6.3 Android Java 層的同步機制
6.4 Android 的訊息機制
6.5 處理程序間的訊息傳遞

Chapter 07  第一個使用者處理程序:Android Init 處理程序
7.1 Init 處理程序的初始化過程
7.2 解析啟動指令稿init.rc
7.3 Init 處理程序對訊號的處理
7.4 屬性系統
7.5 守護處理程序ueventd 介紹
7.6 「看門狗」—— watchdogd 介紹

Chapter 08   支撐Android 世界的一極:Zygote 處理程序
8.1 Zygote 簡介
8.2 Zygote 處理程序的初始化
8.3 Zygote 啟動應用程式
8.4 預先載入系統類別和資源

Chapter 09  精確地控制資源的使用:Android 的資源管理
9.1 資源系統簡介
9.2 Android 資源的製作
9.3 Android 資源的使用
9.4 Android 資源管理的實現原理
9.5 全新的設計語言 —— Android 5.0 的Material Design

Chapter 10   Android 系統的核心之一:SystemServer 處理程序
10.1 SystemServer 的建立過程
10.2 SystemServer 中的Watchdog

Chapter 11   APK 套件的安裝、移除和最佳化:Android 的應用管理
11.1 了解PackageManagerService
11.2 安裝應用
11.3 系統執行時期的應用管理
11.4 守護處理程序installd
11.3 在storyboard 中設計速覽
11.4 掛鉤控制器

Chapter 12  Android 的元件管理
12.1 應用處理程序的組成
12.2 Android 架構的核心 —— ActivityManagerService 服務
12.3 Process 管理
12.4 Activity 管理
12.5 應用的啟動過程
12.6 Service 管理
12.7 提供資料的存取 —— ContentProvider 管理
12.8 廣播 —— BroadcastReceiver 管理第三部分 WatchKit 進階功能

Chapter 13   Android 的多使用者模式
13.1 管理使用者的系統服務 —— UserManagerService 服務
13.2 PackageManagerService 和多使用者
13.3 ActivityManagerServier 和多使用者

Chapter 14   Android 的圖形顯示系統
14.1 畫布 —— 了解Surface
14.2 影像顯示原理
14.3 SurfaceFlinger 服務
14.4 影像的輸出過程
14.5 歸納

序/導讀

前言

Android 5.0(代號Lollipop,簡稱Android L)是Android 系統自1.0 版本以來變化最大的升級版,它包含了很多激動人心的改進,其中最明顯的變化在於使用者體驗方面。「Material Design」扁平、簡潔,且其色彩豐富、動感十足的設計風格,給使用者帶來了更新鮮的感覺。除了介面風格的重大變化外,包含搜索、應用選單、通知中心等許多細節在Android 5.0 上也有很大改進。

Android 5.0 在系統性能提升方面也做了相當大的努力,首先是ART 徹底代替了Dalivk 虛擬機器,同時開始支援64 位元編譯,因而,使用者很快就能使用執行64位元CPU 的手機,重要的是,系統的耗電量也透過「Porject Volte」專案有了顯著的改善。

從2008 年9 月23 日Google 發佈Android 1.0 版本到2014 年6 月26 日Google正式推出Android 5.0,已經6 年過去了。筆者第一次接觸Android 系統是2008 年在Motorola 工作的時候,那時Android 才嶄露頭角,現在Android 系統已經佔據手機市場50% 以上。由於工作關係,筆者6 年來一直致力於Android Framework的開發和研究, 也算是略有收穫。

Android 是一套開放原始碼系統, 官方(Google)提供的技術資料很有限,其官方網站(www.android.com)中提供的資料更多地是在介紹Android 應用程式的開發。這6 年間也湧現了大批介紹Android的書籍,主要是介紹Android 應用程式的開發,分析Android 核心原始程式的書籍較少,為此特意撰寫本書。

✤本書內容介紹

本書介紹了Android 主要模組的架構、原理和主幹實現。希望讀者能透過本書,獲得對Android 系統進行延伸開發的能力,而筆者在書中,也盡可能詳細地列出程式的註釋、各種屬性和常數的解釋,以及系統中使用的各種檔案格式的介紹,希望本書能成為系統開發人員的案頭工具書。

全書共分24 章,基本包括了Android 系統中重要的模組,對於每個模組,筆者儘量詳細地介紹了它們的架構、原理和程式等各方面,由於篇幅限制以及本人的了解有限,如果讀者發現了其中的謬誤,歡迎來信賜教,本人不勝感激。關於本書的一些後續的資訊,可以造訪筆者的部落格(http://blog.csdn.net/u013234805)。

本書有3 個主要特點:一是新,全書以最新為基礎的Android 5.0 的程式分析說明(Android 5.0 中很多程式細節都有改進);二是全,對Android 的覆蓋面比較廣,Android 4.4 和Android 5.0 中增加的新功能,如SELinux、ART 等都有詳細介紹,同時整本書以一套原始程式分析說明,很多模組前後能相互印證;三是細,除了對各個模組為基礎的功能進行詳細說明外,對書中摘錄的Android 原始程式也做了詳細註釋。

本書針對的讀者主要是進行系統開發的工程師,包含手機開發工程師、ROM 開發工程師和各種使用Android 作為開發平台的TV 和可穿戴式裝置(Wear)的開發工程師。當然,即使是Android 應用程式開發工程師,如果能了解更多的Android 系統知識,也會對應用程式開發有相當大的幫助,畢竟Android 底層的開發資料比較少,一些API 的解釋也不盡人意,在開發應用的過程中,當遇到問題時,如果能開啟原始程式進行檢視,很多問題都能輕鬆解決。

✤本書導讀

閱讀系統分析類別的書籍,從來不是一件輕鬆的事情。Android 是一套非常複雜的系統,為了能減輕讀者的負擔,筆者在介紹每個模組時,儘量先介紹模組的使用、原理或架構,讓讀者對某個模組有了初步了解後再透過剖析原始程式來更深入地介紹細節。

本書摘錄了大量的Android 原始程式,讀者第一次閱讀某個章節時,如果覺得枯燥,可以先忽略原始程式,只閱讀筆者的分析文字,有了整體的概念之後,再從頭開始了解書中的程式會更容易。

其實,真正掌握某個模組的內容,是必須要能讀懂原始程式的,為了幫助讀者達到這個目的,筆者會做儘量詳細的分析解釋,對於一些複雜的函數,同時會在程式中加上詳細的註釋。

為了減小程式佔用的版面,筆者將程式中的Log 敘述、英文註釋,以及一些進行參數檢查、錯誤處理的程式都刪除了,然後再加上註釋,改動後的程式和原始程式看上去可能有區別,但是邏輯上並沒有差別,而且更加容易了解。

如果純粹使用自然語言去描述某個函數的程式邏輯,可能會非常晦澀難懂。對於軟體工程師而言,通常更習慣閱讀程式來了解邏輯,因此,筆者在書中盡可能保留一個函數原始程式的全貌。但是大段的程式也會讓人覺得枯燥,因此,對於程式量大的函數,筆者一般會把程式分成小段來分析說明,這樣能保持一頁中程式和文字的合適比例,減輕讀者的閱讀負擔。

在閱讀本書時,有一點要注意:在Java 語言中,通常使用「方法」這個稱謂,而C/C++語言中,則習慣使用「函數」。在本書中,筆者會同時使用這兩種稱謂,因為Android 的很多模組中,Java 和C++的程式中會有名稱相同的函數,為了不混淆兩者,書中說明Java 程式時,儘量使用「方法」這個稱謂,說明C/C++ 程式時,則使用「函數」。當然兩者並沒有本質區別,這是筆者特意為之,是為了更好了解。

配送方式

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

詳細資料

詳細資料

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

商品評價

訂購/退換貨須知

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

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

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

退換貨須知:

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

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