Android的設計與實現:卷I

來源:互聯網
上載者:User

《Android的設計與實現:卷I》

基本資料作者: 楊雲君出版社:機械工業出版社ISBN:9787111417132上架時間:2013-4-26出版日期:2013 年4月開本:16開頁碼:1版次:1-1所屬分類:電腦 > 軟體與程式設計 > 移動開發 > Android 更多關於 》》》《Android的設計與實現:卷I》內容簡介電腦書籍  《android的設計與實現:卷i》是android應用開發工程師和android系統工程師進階修鍊的必讀之作。它由資深android核心專家親自執筆,從原始碼角度,系統、深入、透徹剖析android系統架構層(framework)的設計思想和實現原理,為android應用工程師和系統工程師解決實際工作中的各種難題提供了原理性的指導。為了降低讀者的閱讀成本,《android的設計與實現:卷i》使用了大量簡單的uml類圖和順序圖表來展示類的階層和方法的調用流程,使讀者能迅速讀完《android的設計與實現:卷i》並領會其精髓!   “android的設計與實現”系列叢書主要圍繞android系統的四層結構展開,通過原始碼來分析各層的設計思想與實現原理,卷i則主要是針對framework(架構層)的。全書共12章,分為六個部分:基礎篇(第1~2章)詳細講解了android的體繫結構、原始碼閱讀和調試環境的搭建,以及整個架構的基礎;啟動篇(第3~4章)深入分析了android啟動過程的機制和實現原理,能協助讀者全面理解架構層系統服務的運行基礎;binder篇(第5~6章)著重分析了binder在native架構層和java架構層的機制和實現,能讓讀者深入理解進程間的通訊模型;訊息通訊篇(第7章)重點分析了android的訊息驅動和非同步處理機制,能讓讀者深入理解線程間的通訊模型;package manager篇(第8~9章)主要講解了package manager的機制與實現,以及apk的安裝方法與過程;activity manager篇(第10~12章)深入闡述了activitymanagerservice的運行機制、應用程式和進程的啟動流程,以及進程管理機制。   《android的設計與實現:卷i》適合中進階的android應用開發工程師、android系統開發工程師、android系統架構師,以及負責對android系統進行調試和最佳化的工程師們閱讀。目錄《android的設計與實現:卷i》前言第一部分 基礎篇第1章 android體繫結構及原始碼閱讀環境搭建 / 21.1 android發展過程 / 21.2 android體繫結構 / 31.2.1 靜態視角的體繫結構 / 31.2.2 動態視角的體繫結構 / 71.3 android源碼下載和編譯 / 71.3.1 搭建開發環境 / 81.3.2 下載android上層系統原始碼 / 91.3.3 下載指定模組源碼 / 101.3.4 下載 android linux kernel源碼 / 111.3.5 編譯android上層系統源碼 / 111.3.6 編譯指定模組源碼 / 121.4 android源碼結構 / 141.5 android源碼開發工具的配置和使用 / 151.5.1 配置android sdk / 151.5.2 用eclipse開發和調試原始碼 / 161.5.3 用source insight閱讀原始碼 / 19.1.6 ndk開發環境配置 / 201.7 本章小結 / 21第2章 架構基礎jni / 222.1 jni在android系統中所處的位置 / 222.2 jni架構層執行個體分析 / 232.2.1 log系統java層分析 / 242.2.2 log系統的jni層 / 242.2.3 log系統的jni方法註冊 / 252.3 jni總管:jnienv / 272.4 在java中調用jni實現方法 / 292.4.1 java資料類型與jni資料類型轉換 / 292.4.2 jni方法命名規則 / 302.4.3 jni方法簽名規則 / 312.5 jni操作java對象 / 322.5.1 訪問java對象 / 322.5.2 操作成員變數(域)和方法 / 332.5.3 全域引用、弱全域引用和局部引用 / 342.6 jni異常處理 / 362.7 jni應用程式層執行個體分析 / 382.7.1 java層分析 / 382.7.2 jni層代碼和異常處理 / 392.8 本章小結 / 42第二部分 啟動篇第3章 android啟動過程的底層實現 / 443.1 android正常模式啟動流程 / 443.2 kernel啟動過程 / 443.2.1 核心引導階段 / 453.2.2 核心啟動階段 / 463.3 init進程的執行過程 / 493.4 init.rc檔案解析過程 / 533.4.1 android初始化語言 / 533.4.2 init.rc的內容 / 563.4.3 解析設定檔 / 573.4.4 解析service / 603.4.5 解析action / 633.5 觸發並啟動action和service / 653.5.1 觸發action / 653.5.2 執行action / 663.5.3 啟動service / 703.5.4 init對屬性服務的處理 / 713.6 init迴圈監聽處理事件 / 753.7 本章小結 / 77第4章 android 啟動過程的上層實現 / 784.1 第一個dalvik虛擬機器zygote / 794.1.1 zygote的配置 / 794.1.2 如何執行zygote服務程式 / 804.2 zygoteinit的啟動過程 / 824.2.1 建立dalvik虛擬機器 / 834.2.2 註冊jni方法 / 854.2.3 開啟java世界 / 884.3 zygoteinit開啟java世界的五部分工作 / 894.3.1 註冊zygote的socket / 894.3.2 預先載入class資源和resource資源 / 894.3.3 啟動system_server進程 / 924.3.4 執行methodandargscaller的run方法 / 984.3.5 執行runselectloopmode方法 / 1024.4 zygote處理home啟動請求 / 1044.5 本章小結 / 112第三部分 binder篇第5章  binder在native架構層的實現 / 1145.1 binder與c/s體繫結構概述 / 1145.2 servicemanager進程的啟動過程 / 1155.2.1 初始化binder通訊環境 / 1165.2.2 註冊上下文管理者 / 1185.2.3 等待接收並處理ipc通訊請求 / 1205.3 server的啟動和service的註冊過程 / 1285.3.1 建立processstate對象 / 1295.3.2 擷取servicemanager的代理對象 / 1315.3.3 註冊service / 1395.3.4 server進程開啟線程池 / 1455.4 client端使用服務代理對象 / 1465.5 服務代理與服務通訊 / 1495.6 本章小結 / 152第6章 binder在java架構層的實現 / 1536.1 java系統服務的建立過程 / 1536.1.1 建立javabbinderholder對象 / 1556.1.2 javabbinder的作用 / 1566.1.3 gbinderoffsets結構體解析 / 1566.2 java系統服務的註冊過程 / 1596.2.1 調用binderinternal.getcontextobject方法 / 1606.2.2 調用servicemanagernative.asinterface方法 / 1656.2.3 調用servicemanagerproxy.addservice方法註冊服務 / 1676.3 client端擷取服務代理 / 1696.3.1 擷取服務的binderproxy / 1706.3.2 構造服務的proxy對象 / 1726.3.3構造服務管理者對象 / 1736.4client端調用java系統服務的方法 / 1746.5統一的通訊介面aidl / 1776.5.1aidl執行個體 / 1776.5.2aidl文法 / 1806.5.3處理自訂資料類型的傳遞 / 1816.6本章小結 / 182第四部分 訊息通訊篇第7章線程訊息通訊與非同步處理 / 1847.1什麼是looper線程 / 1847.2第一步:looper線程準備階段 / 1857.2.1建立java層的looper對象 / 1867.2.2建立java層的messagequeue-對象 / 1867.2.3建立native層的nativemessage queue和looper對象 / 1877.2.4nativemessagequeue關聯到messagequeue / 1897.3第二步:建立訊息處理器並發送訊息 / 1907.3.1handler的建立和初始化 / 1907.3.2message的建立和初始化 / 1137.3.3訊息的發送過程 / 1927.4第三步:looper線程迴圈階段 / 1987.4.1記錄並擷取當前線程身份資訊 / 1987.4.2迴圈監聽訊息 / 1997.4.3分發訊息到處理器 / 2057.4.4回收訊息並更新訊息池 / 2097.5非同步任務類asynctask / 2107.5.1asynctask的實現 / 2117.5.2asynctask的執行 / 2147.6本章小結 / 223第五部分 package manager篇第8章package manager 的機制與實現 / 2268.1  package manager體繫結構 / 2278.1.1三層體繫結構 / 2278.1.2三層之間的關係 / 2288.2packagemanagerservice的啟動過程 / 2318.2.1建立並初始化settings對象 / 2328.2.2擷取系統預設配置 / 2368.2.3啟動packagehandler / 2378.2.4建立data目錄並初始化usermanager / 2398.2.5解析系統permission和feature資訊 / 2428.2.6解析packages檔案 / 2458.2.7dexopt最佳化判定 / 2478.2.8啟動fileobserver監控apk檔案的目錄 / 2508.2.9調用scandirli方法掃描並安裝apk包 / 2528.2.10更新packages檔案 / 2538.3 packagemanagerservice啟動過程使用的核心組件 / 2548.3.1java層的installer / 2558.3.2installd中的命令 / 2578.4本章小結 / 260第9章 apk的安裝過程 / 2619.1 通過scandirli方法安裝apk / 2619.1.1 建立packageparser / 2629.1.2 解析androidmanifest.xml檔案 / 2639.1.3 過濾packageparser.package類型的pkg對象 / 2709.1.4 解析和安裝pkg / 2749.2 使用adb命令安裝應用程式 / 2829.2.1 通過訊息機制安裝指定的apk / 2839.2.2 調用handlestartcopy方法處理安裝操作 / 2869.2.3 調用handlereturncode方法處理返回結果 / 2909.3  本章小結 / 293第六部分 activity manager篇第10章 activity manager的機制與實現 / 29610.1 activity manager概述 / 29610.2 activitymanagerservice在系統啟動階段的主要工作 / 29710.3 第一階段:啟動activity managerservice / 29910.3.1 啟動athread線程 / 30010.3.2 建立activitythread對象 / 30210.3.3 建立activitystack類 / 30910.3.4 調用startrunning方法 / 31010.4 第二階段:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.