回首頁  
帳號
 
關於博碩 博碩好讀 校園圖書 MOCC認證 下載教學 元學堂

博碩好讀
  新書推薦
  出版預告
  名家名著
  iT達人祕笈
 

分類索引

 

出版總覽

 

讀者服務

  徵求作者
 
首頁 >> 書籍介紹
 
 
點我可放大圖片
 
書名:深入理解Android核心設計思想-核心解構篇
書號:PG21505 作者:林學森 編著 ISBN: 978-986-201-985-6
定價:NT$720元 印刷:單色 頁數:784頁
書籍規格:17*23 上市日:2015/1/1 譯者:蕭仁惠 審校
學習定位:高階 本書附件:無   快速前往 勘誤
前往購買 >> 天瓏 類別:電腦技術  
       
快速前往 快速前往        

 

 
    "Read the f**king Source Code" –Linus Benedict Torvalds
    -本書謹獻給那些埋首致力與「該死的原始碼」奮戰的程式設計師們

    探索和品味Android大師們的內核設計藝術
    歷經4次重大改版,10餘次修訂,耗時3年完成重量級巨著
    伴隨Android的高速發展,本書終於與讀者見面了。



    一本讀得懂、用得上,幫助解決專案項目難點的權威指南。Android遊戲製作教程,Android SDK寶典!



    全書分為編譯篇、系統原理篇、應用原理篇、系統工具篇共4篇22章,
    基於Android SDK最新版本,全面剖析了行程/執行緒、記憶體管理、Binder機制、
    GUI顯示系統、多媒體管理、輸入系統等核心知識在Android中的實作原理。
    透過大量情境圖片與實例來引導讀者學習,由總體框架再到細節實作,
    為讀者提供由“整體到局部”、“由點及面”的科學方法,全面理解Android內核提供“思維捷徑”
    明白“是什麼”、“有什麼用”,然後才剖析“如何做到的”。

    “Hello World”式的入門嚮導——結合編譯系統的架構和內部原理,為各廠商客製化自己的Android產品提供了參考範例。
    根據多年的Android專案開發和培訓經驗,「研發人員(包括系統開發和應用程式開發)參與實際Android專案所需具備的知識」,
    如Intent匹配規則、應用程式的資源適配過程、字元編碼的處理、Widget機制、應用程式的編譯封裝等。
    包含「Android和OpenGL ES、資訊安全基礎概述」等大部分相關書籍未涵蓋的Android「根基」——經久不衰的知識理論。
    本書所闡述的知識點大部分來源於專案研發的經驗總結,因而具有較強的實用性,做到真正貼近讀者,貼近開發需求。

    《深入理解Android內核設計思想》既適合Android系統工程師,也適合於應用開發工程師來閱讀提升Android開發能力。
    讀者可以在《深入理解Android內核設計思想》潛移默化的學習過程中更深刻地理解Android系統,並將所學知識自然地應用到實際開發難題的解決中。



    (1)透過大量情景圖片與實例引導讀者學習,提供更易於理解內核思想的“思維捷徑”
    (2)本書的出發點仍是作業系統的經典原理根基——貫穿其中的是經久不衰的理論知識
    (3)內容由淺入深、由總體框架再到細節實作。盡可能避免閱讀技術書籍時“看了後面忘了前面”的現象
    (4)許多書籍仍停留在Android 2.3或者更早期的版本。雖然原理類似,但對於專案研發需要最新的開發版本
    (5)“Hello World”式的入門嚮導——結合編譯系統的架構和內部原理,為客製化Android產品提供範例
    (6)所闡述的知識點源於專案研發的經驗總結,因而具有較強的實用性,做到真正貼近讀者符合開發需求


    *內頁試讀*
































 

    Part 1 Android 編譯篇
    Chapter 1 Android 系統簡介
    1-1 Android 系統發展歷程
    1-2 Android 系統特點
    1-3 Android 系統框架

    Chapter 2 Android 原始碼下載及編譯
    2-1 Android 原始碼下載指南
    2.1.1 基於Repo 和Git 的版本管理
    2.1.2 Android 原始碼下載流程
    2-2 原生系統編譯指南
    2.2.1 建立編譯環境
    2.2.2 編譯流程
    2-3 客製化產品的編譯與燒錄
    2.3.1 客製化新產品
    2.3.2 Linux 內核編譯
    2.3.3 燒錄 .
    2-4 Android 系統映射檔
    2.4.1 boot.img
    2.4.2 ramdisk.img
    2.4.3 system.img
    2-5 OTA 系統升級
    2.5.1 產生升級套件
    2.5.2 獲得升級套件
    2.5.3 OTA 升級- RecoveryMode
    2-6 Android 反編譯

    Chapter 3 Android 編譯系統
    3-1 Makefile 入門
    3-2 Android 編譯系統
    3.2.1 Makefile 依賴樹的概念
    3.2.2 樹根節點droid
    3.2.3 main.mk 解析
    3.2.4 droidcore 節點
    3.2.5 dist_files
    3.2.6 Android.mk 的編寫規則

    Part 2 Android 原理篇
    Chapter 4 作業系統基礎
    4-1 計算機系統結構(Computer Architecture)
    4.1.1 馮.諾依曼結構
    4.1.2 哈佛結構
    4-2 什麼是作業系統
    4-3 行程間通訊的經典實作
    4.3.1 共用記憶體(Shared Memory)
    4.3.2 管道(Pipe)
    4.3.3 Unix Domain Socket
    4.3.4 RPC(Remote Procedure Calls)
    4-4 同步機制的經典實作
    4.4.1 信號量(Semaphore)
    4.4.2 Mutex
    4.4.4 同步範例
    4-5 Android 中的同步機制
    4.5.1 行程間同步——Mutex
    4.5.2 條件判斷——Condition
    4.5.3 「柵欄、障礙」——Barrier
    4.5.4 加解鎖的自動化操作——Autolock
    4-6 作業系統記憶體管理基礎
    4.6.1 虛擬記憶體(Virtual Memory)
    4.6.2 記憶體保護(Memory Protection)
    4.6.3 記憶體分配與回收
    4.6.4 行程間通訊——mmap
    4-7 Android 中的Low Memory Killer
    4-8 Android 匿名共用記憶體(Anonymous Shared Memory)
    4.8.1 Ashmem 設備
    4.8.2 Ashmem 應用實例
    4-9 JNI
    4.9.1 Java 函數的本地實作
    4.9.2 本地程式碼讀取JVM
    4-10 學習Android 系統的兩條線索

    Chapter 5 Android 行程/ 執行緒管理
    5-1 Android 行程和執行緒
    5-2 Handler, MessageQueue, Runnable 與Looper
    5-3 UI 主執行緒——ActivityThread
    5-4 Thread 類別
    5.4.1 Thread 類別的內部原理
    5.4.2 Thread 休眠和喚醒
    5.4.3 Thread 實例
    5-5 Android 應用程式的典型啟動流程

    Chapter 6 行程間通訊——Binder
    6-1 智能指標
    6.1.1 智慧指標的設計理念
    6.1.2 強指標sp
    6.1.3 弱指標wp
    6-2 行程間的資料傳遞載體——Parcel
    6-3 Binder 驅動與協議
    6.3.1 打開Binder 驅動——binder_open
    6.3.2 binder_mmap
    6.3.3 binder_ioctl
    6-4 「DNS」伺服器——ServiceManager(Binder Server)
    6.4.1 ServiceManager 的啟動
    6.4.2 ServiceManager 的建構
    6.4.3 獲取ServiceManager 服務——設計思考
    6.4.5 IBinder 和BpBinder
    6.4.6 ProcessState 和IPCThreadState
    6-5 Binder 用戶端——Binder Client
    6-6 Android 介面描述語言——AIDL
    6-7 匿名Binder Server

    Chapter 7 Android 啟動流程簡析
    7-1 第一個系統行程(init)
    7.1.1 init.rc 語法
    7.1.2 init.rc 實例分析
    7-2 系統關鍵服務的啟動簡析
    7.2.1 Android 的「DNS 伺服器」——ServiceManager
    7.2.2 「孕育」新的執行緒和行程——Zygote
    7.2.3 Android 的「系統服務」——SystemServer

    Chapter 8 管理Activity 和元件執行狀態的系統行程
    —Activity ManagerService(AMS)
    8-1 AMS 功能概述
    8-2 管理目前系統中Activity 狀態——Activity Stack
    8-3 startActivity 流程
    8-4 完成同一任務的「集合」——Activity Task
    8.4.1 「後進先出」——Last In, First Out
    8.4.2 管理Activity Task

    Chapter 9 GUI 系統之SurfaceFlinger
    9-1 OpenGL ES 與EGL
    9-2 Android 的硬體介面,HAL
    9-3 Android 終端顯示裝置的「化身」,Gralloc 與Framebuffer
    9-4 Android 中的本地視窗
    9.4.1 FramebufferNativeWindow
    9.4.2 應用程式端的本地視窗,Surface
    9-5 BufferQueue 詳解
    9.5.1 BufferQueue 的內部原理
    9.5.2 BufferQueue 中的緩衝區分配
    9.5.3 應用程式的典型繪圖流程
    9.5.4 應用程式與BufferQueue 的關係
    9-6 SurfaceFlinger
    9.6.1 「奶油專案」,Project Butter
    9.6.2 SurfaceFlinger 的啟動
    9.6.3 介面的服務端,Client
    9-7 VSync 的產生和處理
    9.7.1 VSync 信號的產生和分發
    9.7.2 VSync 信號的處理
    9.7.3 handleMessageTransaction
    9.7.4 「介面已經過時/無效,需要重新繪製」,handleMessageInvalidate
    9.7.5 合成前的準備工作,preComposition
    9.7.6 可見區域,rebuildLayerStacks
    9.7.7 為「Composition」建立環境,setUpHWComposer
    9.7.8 doDebugFlashRegions
    9.7.9 doComposition

    Chapter 10 GUI 系統之「視窗管理員」—WMS
    10-1 「視窗管理員」,WMS 綜述
    10.1.1 WMS 的啟動
    10.1.2 WMS 的基礎功能
    10.1.3 WMS 的工作方式
    10.1.4 WMS,AMS 與Activity 間的聯繫
    10-2 視窗屬性 .
    10.2.1 視窗類型與層級
    10.2.2 視窗策略(Window Policy)
    10.2.3 視窗屬性(LayoutParams)
    10-3 視窗的增加過程
    10.3.1 系統視窗的增加過程
    10.3.2 Activity 視窗的增加過程
    10.3.3 視窗增加物件
    10-4 Surface 管理 .
    10.4.1 Surface 申請流程(relayout)
    10.4.2 Surface 的跨行程傳遞
    10.4.3 Surface 的業務操作
    10-5 performLayoutAndPlaceSurfacesLockedInner
    10-6 視窗大小的計算過程
    10-7 啟動視窗的增加與銷毀
    10.7.1 啟動視窗的增加
    10.7.2 啟動視窗的銷毀
    10-8 視窗動畫
    10.8.1 視窗動畫類型
    10.8.2 動畫流程追蹤,WindowStateAnimator
    10.8.3 AppWindowAnimator
    10.8.4 動畫的執行過程

    Chapter 11 讓介面炫彩起來的GUI 之View 系統
    11-1 應用程式中的View 框架
    11-2 Activity 中View Tree 的建立過程
    11-3 在WMS 中註冊視窗
    11-4 ViewRoot 的基本工作方式
    11-5 View Tree 的遍覽時機
    11-6 View Tree 的遍覽流程
    11-7 View 和ViewGroup 屬性
    11.7.1 View 的基本屬性
    11.7.2 ViewGroup 的屬性
    11.7.3 View,ViewGroup 和ViewParent
    11.7.4 Callback 介面
    11-8 「作畫」工具集,Canvas
    11.8.1 「繪製UI」,Skia
    11.8.2 數據仲介,Surface.lockCanvas
    11.8.3 解鎖並送出結果,unlockCanvasAndPost
    11-9 draw 和onDraw
    11-10 View 中的訊息傳遞
    11.10.1 View 中TouchEvent 的投遞流程
    11.10.2 ViewGoup 中TouchEvent 的投遞流程
    11-11 View 動畫

    Chapter 12 「問渠哪得清如許,為有源頭活水來」
    —InputManagerService 與輸入事件
    12-1 事件的分類
    12-2 事件的傳遞流程
    12.2.1 InputManagerService
    12.2.2 InputReaderThread
    12.2.3 InputDispatcherThread
    12.2.4 ViewRootImpl 對事件的分派
 
    林學森
    香港中文大學電腦碩士,
    曾于多家跨國企業擔任研發和管理工作,並已在國內外會議、雜誌上發表多篇文章。
    現為某行業知名企業Android軟體創始人、負責人。有豐富的技術研發與專案管理經驗,
    擅長作業系統架構設計與內核分析。

 

書籍勘誤
 
  1. 勘誤表
 
 
     

博碩文化客服信箱
 

[email protected]

 
文教業務團隊
台北、新北、桃園、基隆、宜蘭、花蓮、金門
汪 玉 鳳
LINE ID:0925177716
0925-177716
[email protected]
郭 南 彤
LINE ID:rgtech101
0917-727778
[email protected]
助理分機 519
新竹、苗栗、台中、彰化、南投、雲林
林 世 昌
LINE ID:0925275775
0925-275775
[email protected]
助理分機 519
嘉義、台南、高雄、屏東、台東、澎湖
林 月 玲
LINE ID:0926858627
0926-858627
[email protected]
助理分機 238
 
MOCC 認證小組
 
  林 雯 玲 電話:02-2696-2869 分機:623 [email protected]

 

 
 

 

博碩文化股份有限公司 DrMaster Press Co., Ltd.
台灣新北市汐止區新台五路一段112號10樓A棟
Building A, 10F, No.112, Xintai 5th Rd., Sec.1,Xizhi Dist., New Taipei City 221, Taiwan
Tel:02-2696-2869 Fax:02-2696-2867 劃撥帳號:17484299

Copyright© DrMaster Press Co., Ltd. All Rights Reserved.