注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計程序設計綜合Android的設計與實現(卷1)

Android的設計與實現(卷1)

Android的設計與實現(卷1)

定 價:¥79.00

作 者: 楊云君 著
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 程序設計 計算機/網絡 移動開發(fā)

ISBN: 9787111417132 出版時間: 2013-05-01 包裝: 平裝
開本: 16開 頁數: 432 字數:  

內容簡介

  《Android的設計與實現(卷1)》是Android應用開發(fā)工程師和Android系統工程師進階修煉的必讀之作。它由資深Android內核專家親自執(zhí)筆,從源代碼角度,系統、深入、透徹剖析Android系統框架層(Framework)的設計思想和實現原理,為Android應用工程師和系統工程師解決實際工作中的各種難題提供了原理性的指導。為了降低讀者的閱讀成本,本書使用了大量簡單的UML類圖和序列圖來展示類的層次結構和方法的調用流程,使讀者能迅速讀完本書并領會其精髓!“Android的設計與實現”系列叢書主要圍繞Android系統的四層結構展開,通過源代碼來分析各層的設計思想與實現原理,卷I則主要是針對Framework(框架層)的。全書共12章,分為六個部分:基礎篇(第1~2章)詳細講解了Android的體系結構、源代碼閱讀和調試環(huán)境的搭建,以及整個框架的基礎;啟動篇(第3~4章)深入分析了Android啟動過程的機制和實現原理,能幫助讀者全面理解框架層系統服務的運行基礎;Binder篇(第5~6章)著重分析了Binder在Native框架層和Java框架層的機制和實現,能讓讀者深入理解進程間的通信模型;消息通信篇(第7章)重點分析了Android的消息驅動和異步處理機制,能讓讀者深入理解線程間的通信模型;Package Manager篇(第8~9章)主要講解了Package Manager的機制與實現,以及APK的安裝方法與過程;Activity Manager篇(第10~12章)深入闡述了ActivityManagerService的運行機制、應用程序和進程的啟動流程,以及進程管理機制。本書適合中高級的Android應用開發(fā)工程師、Android系統開發(fā)工程師、Android系統架構師,以及負責對Android系統進行調試和優(yōu)化的工程師們閱讀。

作者簡介

  楊云君,資深Android系統專家,不僅在Android應用開發(fā)方面積累了豐富的經驗,而且精通Android系統級開發(fā)和性能優(yōu)化,對整個Android系統的架構設計與實現原理有十分深入的研究和透徹的認識。就職于國際領先的跨國移動通信公司,作為主任工程師專門從事Android手機的定制和開發(fā),研究Android系統是他的主要工作之一,曾負責了多個手機品牌的多款機型的系統開發(fā)和升級工作,經驗十分豐富。

圖書目錄

前言
第一部分 基礎篇
第1章 Android體系結構及源代碼閱讀環(huán)境搭建
1.1 Android發(fā)展過程
1.2 Android體系結構
1.2.1 靜態(tài)視角的體系結構
1.2.2 動態(tài)視角的體系結構
1.3 Android源碼下載和編譯
1.3.1 搭建開發(fā)環(huán)境
1.3.2 下載Android上層系統源代碼
1.3.3 下載指定模塊源碼
1.3.4 下載 Android Linux Kernel源碼
1.3.5 編譯Android上層系統源碼
1.3.6 編譯指定模塊源碼
1.4 Android源碼結構
1.5 Android源碼開發(fā)工具的配置和使用
1.5.1 配置Android SDK
1.5.2 用Eclipse開發(fā)和調試源代碼
1.5.3 用Source Insight閱讀源代碼
1.6 NDK開發(fā)環(huán)境配置
1.7 本章小結
第2章 框架基礎JNI
2.1 JNI在Android系統中所處的位置
2.2 JNI框架層實例分析
2.2.1 Log系統Java層分析
2.2.2 Log系統的JNI層
2.2.3 Log系統的JNI方法注冊
2.3 JNI總管:JNIEnv
2.4 在Java中調用JNI實現方法
2.4.1 Java數據類型與JNI數據類型轉換
2.4.2 JNI方法命名規(guī)則
2.4.3 JNI方法簽名規(guī)則
2.5 JNI操作Java對象
2.5.1 訪問Java對象
2.5.2 操作成員變量(域)和方法
2.5.3 全局引用、弱全局引用和局部引用
2.6 JNI異常處理
2.7 JNI應用層實例分析
2.7.1 Java層分析
2.7.2 JNI層代碼和異常處理
2.8 本章小結
第二部分 啟動篇
第3章 Android啟動過程的底層實現
3.1 Android正常模式啟動流程
3.2 Kernel啟動過程
3.2.1 內核引導階段
3.2.2 內核啟動階段
3.3 init進程的執(zhí)行過程
3.4 init.rc文件解析過程
3.4.1 Android初始化語言
3.4.2 init.rc的內容
3.4.3 解析配置文件
3.4.4 解析Service
3.4.5 解析Action
3.5 觸發(fā)并啟動Action和Service
3.5.1 觸發(fā)Action
3.5.2 執(zhí)行Action
3.5.3 啟動Service
3.5.4 init對屬性服務的處理
3.6 init循環(huán)監(jiān)聽處理事件
3.7 本章小結
第4章 Android 啟動過程的上層實現
4.1 第一個Dalvik虛擬機zygote
4.1.1 zygote的配置
4.1.2 如何執(zhí)行zygote服務程序
4.2 ZygoteInit的啟動過程
4.2.1 創(chuàng)建Dalvik虛擬機
4.2.2 注冊JNI方法
4.2.3 開啟Java世界
4.3 ZygoteInit開啟Java世界的五部分工作
4.3.1 注冊zygote的Socket
4.3.2 預加載Class資源和Resource資源
4.3.3 啟動system_server進程
4.3.4 執(zhí)行MethodAndArgsCalle的run方法
4.3.5 執(zhí)行runSelectLoopMode方法
4.4 zygote處理Home啟動請求
4.5 本章小結
第三部分 Binder篇
第5章  Binder在Native框架層的實現
5.1 Binder與C/S體系結構概述
5.2 servicemanager進程的啟動過程
5.2.1 初始化Binder通信環(huán)境
5.2.2 注冊上下文管理者
5.2.3 等待接收并處理IPC通信請求
5.3 Server的啟動和Service的注冊過程
5.3.1 創(chuàng)建ProcessState對象
5.3.2 獲取servicemanager的代理對象
5.3.3 注冊Service
5.3.4 Server進程開啟線程池
5.4 Client端使用服務代理對象
5.5 服務代理與服務通信
5.6 本章小結
第6章 Binder在Java框架層的實現
6.1 Java系統服務的創(chuàng)建過程
6.1.1 創(chuàng)建JavaBBinderHolder對象
6.1.2 JavaBBinder的作用
6.1.3 gBinderOffsets結構體解析
6.2 Java系統服務的注冊過程
6.2.1 調用BinderInternal.getContextObject方法
6.2.2 調用ServiceManagerNative.asInterface方法
6.2.3 調用ServiceManagerProxy.addService方法注冊服務
6.3 Client端獲取服務代理
6.3.1 獲取服務的BinderProxy
6.3.2 構造服務的Proxy對象
6.3.3構造服務管理者對象
6.4Client端調用Java系統服務的方法
6.5統一的通信接口AIDL
6.5.1AIDL實例
6.5.2AIDL語法
6.5.3處理自定義數據類型的傳遞
6.6本章小結
第四部分 消息通信篇
第7章線程消息通信與異步處理
7.1什么是Looper線程
7.2第一步:Looper線程準備階段
7.2.1創(chuàng)建Java層的Looper對象
7.2.2創(chuàng)建Java層的MessageQueue-對象
7.2.3創(chuàng)建Native層的NativeMessageQueue和Looper對象
7.2.4NativeMessageQueue關聯到MessageQueue
7.3第二步:創(chuàng)建消息處理器并發(fā)送消息
7.3.1Handler的創(chuàng)建和初始化
7.3.2Message的創(chuàng)建和初始化
7.3.3消息的發(fā)送過程
7.4第三步:Looper線程循環(huán)階段
7.4.1記錄并獲取當前線程身份信息
7.4.2循環(huán)監(jiān)聽消息
7.4.3分發(fā)消息到處理器
7.4.4回收消息并更新消息池
7.5異步任務類AsyncTask
7.5.1AsyncTask的實現
7.5.2AsyncTask的執(zhí)行
7.6本章小結
第五部分 Package Manager篇
第8章Package Manager 的機制與實現
8.1  Package Manager體系結構
8.1.1三層體系結構
8.1.2三層之間的關系
8.2PackageManagerService的啟動過程
8.2.1創(chuàng)建并初始化Settings對象
8.2.2獲取系統默認配置
8.2.3啟動PackageHandler
8.2.4創(chuàng)建data目錄并初始化UserManager
8.2.5解析系統permission和feature信息
8.2.6解析packages文件
8.2.7dexopt優(yōu)化判定
8.2.8啟動FileObserver監(jiān)控APK文件的目錄
8.2.9調用scanDirLI方法掃描并安裝APK包
8.2.10更新packages文件
8.3 PackageManagerService啟動過程使用的核心組件
8.3.1Java層的Installer
8.3.2Installd中的命令
8.4本章小結
第9章 APK的安裝過程
9.1 通過scanDirLI方法安裝APK
9.1.1 創(chuàng)建PackageParser
9.1.2 解析AndroidManifest.xml文件
9.1.3 過濾PackageParser.Package類型的pkg對象
9.1.4 解析和安裝pkg
9.2 使用adb命令安裝應用程序
9.2.1 通過消息機制安裝指定的APK
9.2.2 調用handleStartCopy方法處理安裝操作
9.2.3 調用handleReturnCode方法處理返回結果
9.3  本章小結
第六部分 Activity Manager篇
第10章 Activity Manager的機制與實現
10.1 Activity Manager概述
10.2 ActivityManagerService在系統啟動階段的主要工作
10.3 第一階段:啟動ActivityManagerService
10.3.1 啟動AThread線程
10.3.2 創(chuàng)建ActivityThread對象
10.3.3 創(chuàng)建ActivityStack類
10.3.4 調用startRunning方法
10.4 第二階段:調用setSystemProcess方法
10.4.1 查詢并處理
   ApplicationInfo
10.4.2 創(chuàng)建并初始化ProcessRecord
10.5 第三階段:調用install-SystemProviders方法
10.5.1 查詢Content Provider
10.5.2 安裝Content Provider
10.6 第四階段:調用systemReady方法
10.6.1 發(fā)送ACTION_PRE_BOOT_COMPLETED廣播
10.6.2 清理預啟動的非persistent進程
10.6.3 讀取Settings配置
10.6.4 運行Runnable回調接口
10.6.5 啟動persistent應用程序和Home
10.7 本章小結
第11章 應用程序Activity的啟動和調度
11.1 啟動應用程序Activity時在Client端的執(zhí)行流程
11.2 啟動應用程序Activity時在Server端的執(zhí)行流程
11.2.1 預啟動
11.2.2 暫停
11.2.3 啟動應用程序進程
11.2.4 加載應用程序Activity
11.2.5 顯示Activity
11.2.6 Activity Idle狀態(tài)的處理過程
11.2.7 停止源Activity
11.3 本章小結
第12章 Activity Manager進程 管理
12.1 LRU weight機制
12.2 OOM adj機制
12.2.1 更新OOM adj值
12.2.2 OOM adj的計算過程
12.3 Low Memory Killer機制
12.3.1 OOM adj等級和最小內存閾值
12.3.2 LM Killer機制的實現
12.4 本章小結

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號