注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計程序設(shè)計綜合Android的設(shè)計與實(shí)現(xiàn)(卷1)

Android的設(shè)計與實(shí)現(xiàn)(卷1)

Android的設(shè)計與實(shí)現(xiàn)(卷1)

定 價:¥79.00

作 者: 楊云君 著
出版社: 機(jī)械工業(yè)出版社
叢編項:
標(biāo) 簽: 程序設(shè)計 計算機(jī)/網(wǎng)絡(luò) 移動開發(fā)

ISBN: 9787111417132 出版時間: 2013-05-01 包裝: 平裝
開本: 16開 頁數(shù): 432 字?jǐn)?shù):  

內(nèi)容簡介

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

作者簡介

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

圖書目錄

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

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號