注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)程序設(shè)計(jì)綜合Android內(nèi)核剖析

Android內(nèi)核剖析

Android內(nèi)核剖析

定 價(jià):¥79.90

作 者: 柯元旦 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 移動(dòng)開(kāi)發(fā)

ISBN: 9787121143984 出版時(shí)間: 2011-09-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 596 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)內(nèi)容分別從基礎(chǔ)、內(nèi)核、系統(tǒng)、編譯以及硬件驅(qū)動(dòng)幾個(gè)方面對(duì)Android內(nèi)核相關(guān)知識(shí)進(jìn)行深入剖析,詳細(xì)分析了Android內(nèi)核的內(nèi)部機(jī)制,包括窗口管理系統(tǒng)、Activity管理系統(tǒng)、輸入法框架、編譯系統(tǒng)等,為Android內(nèi)核定制以及高級(jí)應(yīng)用程序開(kāi)發(fā)提供技術(shù)參考。本書(shū)適合于所有Android相關(guān)的工程師以及產(chǎn)品經(jīng)理。

作者簡(jiǎn)介

  柯元旦,1981年生于陜西咸陽(yáng),2003年畢業(yè)于西安電子科技大學(xué)通信工程學(xué)院;2003~2006年,創(chuàng)立了一家設(shè)計(jì)公司,提供便攜式媒體播放器解決方案,基于TI DSP芯片自主開(kāi)發(fā)了一套操作系統(tǒng),包括任務(wù)管理與調(diào)度、文件系統(tǒng)及GUI(圖形用戶(hù)接口)等:2006~2009年,就職于聯(lián)想研究院,先后從事嵌入式系統(tǒng)設(shè)計(jì)以及互聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā);2009年至今,從事Android應(yīng)用程序開(kāi)發(fā)和Framework內(nèi)核研究,對(duì)Android內(nèi)核有較深刻的理解。

圖書(shū)目錄

第1部分  基礎(chǔ)篇
 第1章  Linux基礎(chǔ)
  1.1  Linux文件系統(tǒng)概述
  1.2  Linux啟動(dòng)過(guò)程
  1.3  常用Linux 命令
  1.4  Shell腳本備忘
  1.4.1  獲取輸入
  1.4.2  變量定義
  1.4.3  條件判斷
  1.4.4  while []...do... done語(yǔ)句
  1.4.5  for循環(huán)
  1.4.6  函數(shù)
  1.4.7  常用內(nèi)置符號(hào)常量
  1.5  Make腳本備忘
  1.5.1  一個(gè)簡(jiǎn)單的Makefile文件
  1.5.2  變量的定義與賦值
  1.5.3  條件控制語(yǔ)句
  1.5.4  宏(函數(shù))定義
  1.5.5  內(nèi)置符號(hào)和變量
  1.5.6  模板目標(biāo)(Pattern target)
  1.5.7  目標(biāo)特定的變量賦值(Target-specific variable)
  1.5.8  常用選項(xiàng)
 第2章  Java基礎(chǔ)
  2.1  類(lèi)裝載器DexClassLoader
  2.1.1  DexClassLoader的調(diào)用方法
  2.1.2  基于類(lèi)裝載器設(shè)計(jì)一種“插件”架構(gòu)
  2.2  JNI調(diào)用機(jī)制
  2.2.1  Java訪問(wèn)C
  2.2.2  C訪問(wèn)Java
  2.2.3  在C中使用持久對(duì)象
  2.3  異步消息處理線程
  2.3.1  實(shí)現(xiàn)異步線程的一般思路
  2.3.2  Android中異步線程的實(shí)現(xiàn)方法
 第3章  Android源碼下載及開(kāi)發(fā)環(huán)境配置
  3.1  Mac系統(tǒng)的配置
  3.1.1  硬盤(pán)格式的配置
  3.1.2  port的用法
  3.2  在Linux中配置USB連接
  3.3  在Eclipse中調(diào)試Framework
  3.3.1  一段防止下載異常的腳本
  3.3.2  調(diào)試Framework中的代碼
 第4章  使用git
  4.1  安裝git
  4.2  git倉(cāng)庫(kù)管理
  4.2.1  倉(cāng)庫(kù)的組成
  4.2.2  創(chuàng)建倉(cāng)庫(kù)
  4.2.3  分支管理
  4.3  git merge用法
  4.4  git rebase用法
  4.5  git cherry-pick用法
  4.6  git reset用法
  4.7  恢復(fù)到無(wú)引用提交
  4.8  git remote用法
  4.9  git 配置
  4.9.1  基本信息配置
  4.9.2  merge、diff工具配置
  4.9.3  .gitignore配置
  4.10  同時(shí)使用git和svn
  4.11  其他git常用命令示例
  4.11.1  git branch
  4.11.2  git checkout
  4.11.3  git log
  4.11.4  git commit --amend
  4.11.5  git cherry-pick sha-1
  4.11.6  git merge-base
  4.11.7  git diff master…dev
  4.11.8  git revert
  4.11.9  git diff
  4.11.10  git rm
  4.11.11  git tag
第2部分  內(nèi)核篇
 第5章  Binder
  5.1  Binder框架
  5.2  設(shè)計(jì)Servier端
  5.3  Binder客戶(hù)端設(shè)計(jì)
  5.4  使用Service類(lèi)
  5.4.1  獲取Binder對(duì)象
  5.4.2  保證包裹內(nèi)參數(shù)順序aidl工具的使用
  5.5  系統(tǒng)服務(wù)中的Binder對(duì)象
  5.5.1  ServiceManager管理的服務(wù)
  5.5.2  理解Manager
 第6章  Framework概述
  6.1  Framework框架
  6.1.1  服務(wù)端
  6.1.2  客戶(hù)端
  6.1.3  Linux驅(qū)動(dòng)
  6.2  APK程序的運(yùn)行過(guò)程
  6.3  客戶(hù)端中的線程
  6.4  幾個(gè)常見(jiàn)問(wèn)題
  6.4.1  Acitivity之間如何傳遞消息(數(shù)據(jù))
  6.4.2  窗口相關(guān)的概念
 第7章  理解Context
  7.1  Context是什么
  7.2  一個(gè)應(yīng)用程序中包含多少個(gè)Context對(duì)象
  7.3  Context相關(guān)類(lèi)的繼承關(guān)系
  7.4  創(chuàng)建Context
  7.4.1  Application對(duì)應(yīng)的Context
  7.4.2  Activity對(duì)應(yīng)的Context
  7.4.3  Service對(duì)應(yīng)的Context
  7.4.4  Context之間的關(guān)系
 第8章  創(chuàng)建窗口的過(guò)程
  8.1  窗口的類(lèi)型
  8.2  token變量的含義
  8.2.1  Activity中的mToken
  8.2.2  Window中的mAppToken
  8.2.3  WindowManager.LayoutParams中的token
  8.2.4  View中的token
  8.3  創(chuàng)建應(yīng)用窗口
  8.4  創(chuàng)建子窗口
  8.4.1  Dialog的創(chuàng)建
  8.4.2  PopupWindow的創(chuàng)建
  8.4.3  ContextMenu的創(chuàng)建
  8.4.4  OptionMenu的創(chuàng)建
  8.5  系統(tǒng)窗口Toast的創(chuàng)建
  8.5.1  Toast調(diào)用流程
  8.5.2  Toast添加窗口
  8.6  創(chuàng)建窗口示例
 第9章  Framework的啟動(dòng)過(guò)程
  9.1  Framework運(yùn)行環(huán)境綜述
  9.2  Dalvik虛擬機(jī)相關(guān)的可執(zhí)行程序
  9.2.1  dalvikvm
  9.2.2  dvz
  9.2.3  app_process
  9.3  zygote的啟動(dòng)
  9.3.1  在init.rc中配置zygote啟動(dòng)參數(shù)
  9.3.2  啟動(dòng)Socket服務(wù)端口
  9.3.3  加載preload-classes
  9.3.4  加載preload-resources
  9.3.5  使用folk啟動(dòng)新的進(jìn)程
  9.4  SystemServer進(jìn)程的啟動(dòng)
  9.4.1  啟動(dòng)各種系統(tǒng)服務(wù)線程
  9.4.2  啟動(dòng)第一個(gè)Activity
 第10章  AmS內(nèi)部原理
  10.1  Activity調(diào)度機(jī)制
  10.1.1  幾個(gè)重要概念
  10.1.2  AmS中的一些重要調(diào)度相關(guān)變量
  10.1.3  startActivity()的流程
  10.1.4  stopActivityLocked()停止Activity
  10.1.5  按“Home”鍵回到桌面的過(guò)程
  10.1.6  按“Back”鍵回到上一個(gè)Activity
  10.1.7  長(zhǎng)按“Home”鍵
  10.1.8  Activity生命期的代碼含義
  10.2  內(nèi)存管理
  10.2.1  關(guān)閉而不退出
  10.2.2  Android與Linux的配合
  10.2.3  各種關(guān)閉程序的過(guò)程
  10.2.4  釋放內(nèi)存詳解
  10.3  對(duì)AmS中數(shù)據(jù)對(duì)象的理解
  10.3.1  常見(jiàn)的對(duì)象操作
  10.3.2  理解Activity
  10.3.3  Android多進(jìn)程嗎,是同時(shí)在運(yùn)行多個(gè)應(yīng)用程序嗎
  10.4  ActivityGroup的內(nèi)部機(jī)制
  10.4.1  TabActivity使用時(shí)的類(lèi)關(guān)系結(jié)構(gòu)
  10.4.2  LocalActivityManager的內(nèi)部機(jī)制
  10.4.3  ActivityGroup內(nèi)部的Activity生命期控制
 第11章  從輸入設(shè)備中獲取消息
  11.1  Android消息獲取過(guò)程概述
  11.2  與消息處理相關(guān)的源碼文件分布
  11.3  創(chuàng)建InputDispatcher線程
  11.4  把窗口信息傳遞給InputDispatcher線程
  11.5  創(chuàng)建InputChannel
  11.6  在WmS中注冊(cè)InputChannel
  11.7  在客戶(hù)進(jìn)程中注冊(cè)InputChannel
  11.8  WmS中處理消息的時(shí)機(jī)
  11.9  客戶(hù)窗口獲取消息的時(shí)機(jī)
 第12章  屏幕繪圖基礎(chǔ)
  12.1  繪制屏幕的軟件架構(gòu)
  12.2  Java客戶(hù)端繪制調(diào)用過(guò)程
  12.3  C客戶(hù)端繪制過(guò)程
  12.4  Java客戶(hù)端繪制相關(guān)類(lèi)的關(guān)系
 第13章  View工作原理
  13.1  導(dǎo)論
  13.2  用戶(hù)消息類(lèi)型
  13.2.1  按鍵消息
  13.2.2  觸摸消息
  13.3  按鍵消息派發(fā)過(guò)程
  13.3.1  KeyEvent.DispatcherState中的長(zhǎng)按監(jiān)測(cè)
  13.3.2  按鍵消息總體派發(fā)過(guò)程
  13.3.3  根視圖內(nèi)部派發(fā)過(guò)程
  13.3.4  Activity內(nèi)部派發(fā)過(guò)程
  13.3.5  View類(lèi)內(nèi)部的onKeyDown()和onKeyUp()
  13.3.6  Activity中的onKeyDown()和onKeyUp()
  13.3.7  PhoneWindow內(nèi)部消息派發(fā)過(guò)程
  13.4  按鍵消息在WmS中的派發(fā)過(guò)程
  13.5  觸摸消息派發(fā)過(guò)程
  13.5.1  觸摸消息總體派發(fā)過(guò)程
  13.5.2  根視圖內(nèi)部消息派發(fā)過(guò)程
  13.5.3  ViewGroup內(nèi)部消息派發(fā)過(guò)程
  13.5.4  各種消息監(jiān)測(cè)的基本實(shí)現(xiàn)方法
  13.5.5  View內(nèi)默認(rèn)消息派發(fā)過(guò)程
  13.6  導(dǎo)致View樹(shù)重新遍歷的時(shí)機(jī)
  13.6.1  狀態(tài)的分類(lèi)
  13.6.2  導(dǎo)致View樹(shù)重新遍歷的總體誘因圖
  13.6.3  refreshDrawableList()
  13.6.4  onFocusedChanged()
  13.6.5  ensureTouchMode()
  13.6.6  setVisibility()
  13.6.7  setEnable()
  13.6.8  setSelected()
  13.6.9  invalidate()
  13.6.10  requestFocus()
  13.6.11  requestLayout()
  13.7  遍歷View樹(shù)performTraversals()的執(zhí)行過(guò)程
  13.8  計(jì)算視圖大?。╩easure)的過(guò)程
  13.8.1  measure內(nèi)部設(shè)計(jì)思路
  13.8.2  ViewGroup中的measureChildWithMargins()
  13.8.3  LinearLayout中的onMeasure()過(guò)程舉例
  13.9  布局(layout)過(guò)程
  13.9.1  layout過(guò)程的設(shè)計(jì)思路
  13.9.2  LinearLayout中onLayout()內(nèi)部過(guò)程
  13.9.3  TextView中g(shù)ravity與layout的關(guān)系
  13.10  繪制(draw)過(guò)程
  13.10.1  視圖中可繪制的元素
  13.10.2  繪制過(guò)程的設(shè)計(jì)思路
  13.10.3  ViewRoot中draw()的內(nèi)部流程
  13.10.4  View類(lèi)中draw()函數(shù)內(nèi)部流程
  13.10.5  ViewGroup類(lèi)中繪制子視圖dispatchDraw()內(nèi)部流程
  13.10.6  ViewGroup類(lèi)中drawChild()過(guò)程
  13.10.7  繪制滾動(dòng)條
  13.11  動(dòng)畫(huà)的繪制
  13.11.1  動(dòng)畫(huà)的設(shè)計(jì)思路
  13.11.2  ViewGroup類(lèi)中drawChild()函數(shù)中視圖動(dòng)畫(huà)繪制過(guò)程
  13.11.3  ViewGroup中dipsatchDraw()中布局動(dòng)畫(huà)繪制流程
 第14章  WmS工作原理
  14.1  概述
  14.1.1  窗口的定義
  14.1.2  窗口管理要解決的核心問(wèn)題
  14.1.3  解決核心問(wèn)題所使用的相關(guān)的變量列表
  14.1.4  幾個(gè)操作的概念
  14.1.5  什么是Policy,以及其與WmS的關(guān)系
  14.1.6  WmS接口結(jié)構(gòu)
  14.2  WmS主要內(nèi)部類(lèi)
  14.2.1  表示窗口的數(shù)據(jù)類(lèi)
  14.2.2  DimAnimator
  14.2.3  FadeInOutAnimation
  14.2.4  InputMonitor類(lèi)
  14.2.5  PolicyThread
  14.2.6  Session
  14.2.7  Watermark
  14.2.8  WMThread
  14.3  窗口的創(chuàng)建和刪除
  14.3.1  創(chuàng)建窗口的時(shí)機(jī)和過(guò)程
  14.3.2  assignLayersLocked()的執(zhí)行過(guò)程
  14.3.3  addWindowToListInOrderLocked()的執(zhí)行過(guò)程
  14.3.4  刪除窗口的時(shí)機(jī)
  14.3.5  刪除窗口的過(guò)程
  14.3.6  removeWindowInnerLocked()
  14.4  計(jì)算窗口的大小
  14.4.1  描述窗口尺寸的變量
  14.4.2  窗口大小的變化過(guò)程
  14.4.3  Policy中l(wèi)ayoutWindowLw()的執(zhí)行過(guò)程
  14.4.4  輸入法窗口如何影響應(yīng)用窗口的大小
  14.5  切換窗口
  14.5.1  切換要解決的問(wèn)題
  14.5.2  InputManager和WmS的接口
  14.5.3  AmS與WmS的接口
  14.5.4  從A到B的切換
  14.5.5  從B回到A的過(guò)程
  14.5.6  A中長(zhǎng)按“Home”鍵切換到B
  14.5.7  setAppVisiblity()與銷(xiāo)毀Surface
  14.5.8  computeFocusedWindowLocked()
  14.6  perforLayoutAndPlaceSurfacesLockedInner()的執(zhí)行過(guò)程
  14.6.1  總體過(guò)程
  14.6.2  第一大步驟:計(jì)算窗口的大小
  14.6.3  第二大步驟:計(jì)算窗口的可視狀態(tài)
  14.6.4  第三大步驟:通知SurfaceFlinger進(jìn)行窗口重繪
  14.7  窗口動(dòng)畫(huà)
  14.8  屏幕旋轉(zhuǎn)及Configuration的變化過(guò)程
第3部分  系統(tǒng)篇
 第15章  資源訪問(wèn)機(jī)制
  15.1  定義資源
  15.2  存儲(chǔ)資源
  15.3  styleable、style、attr、theme的意義
  15.4  AttributeSet與TypedArray類(lèi)
  15.5  獲取Resources的過(guò)程
  15.5.1  通過(guò)Context獲取
  15.5.2  通過(guò)PackageManager獲取
  15.6  Framework資源
  15.6.1  加載和讀取
  15.6.2  添加
  15.6.3  實(shí)現(xiàn)真正主題切換的兩種思路
 第16章  程序包管理(Package Manager Service)
  16.1  包管理概述
  16.2  packages.xml文件格式
  16.2.1  last-platform-version標(biāo)簽
  16.2.2  permissions標(biāo)簽
  16.2.3  cert標(biāo)簽
  16.2.4  sigs標(biāo)簽
  16.2.5  perms標(biāo)簽
  16.2.6  package標(biāo)簽
  16.2.7  shared-user標(biāo)簽
  16.3  包管理服務(wù)的啟動(dòng)過(guò)程
  16.3.1  各主要功能類(lèi)的關(guān)系
  16.3.2  PmS主體啟動(dòng)過(guò)程
  16.3.3  readPermission()內(nèi)部過(guò)程
  16.3.4  mSettings.readLP()
  16.3.5  scanPackageLI()內(nèi)部過(guò)程
  16.3.6  mSettings.writeLP()
  16.4  應(yīng)用程序的安裝和卸載
  16.4.1  各主要功能類(lèi)關(guān)系
  16.4.2  應(yīng)用程序安裝過(guò)程
  16.4.3  應(yīng)用程序的卸載過(guò)程
  16.5  intent匹配框架
  16.5.1  主要功能類(lèi)的關(guān)系
  16.5.2  主體調(diào)用過(guò)程
 第17章  輸入法框架
  17.1  輸入法框架組成概述
  17.2  輸入法中各Binder對(duì)象的創(chuàng)建過(guò)程
  17.2.1  InputConnection
  17.2.2  IInputMethodClient
  17.2.3  InputMethodSession
  17.2.4  InputMethod
  17.3  輸入法主要操作過(guò)程
  17.3.1  輸入法相關(guān)模塊的啟動(dòng)過(guò)程
  17.3.2  切換輸入法
  17.3.3  啟動(dòng)輸入法
  17.3.4  顯示輸入法
  17.3.5  輸入法操作過(guò)程中的重要變量總結(jié)
  17.4  輸入法窗口內(nèi)部的顯示過(guò)程
  17.4.1  IMS中的showWindow()的內(nèi)部執(zhí)行過(guò)程
  17.4.2  標(biāo)準(zhǔn)布局的IMS
  17.4.3  自定義布局的IMS
  17.5  向編輯框傳遞字符
  17.6  輸入法相關(guān)源碼清單
第4部分  編譯篇
 第18章  Android編譯系統(tǒng)
  18.1  Android源碼文件結(jié)構(gòu)
  18.2  從調(diào)用make命令開(kāi)始說(shuō)起
  18.2.1  編譯命令
  18.2.2  編譯結(jié)構(gòu)猜想
  18.3  編譯所需腳本文件之間的協(xié)同關(guān)系
  18.3.1  編譯系統(tǒng)內(nèi)部功能模塊圖
  18.3.2  腳本文件的包含關(guān)系
  18.3.3  從子項(xiàng)目中提取編譯目標(biāo)
  18.3.4  生成編譯規(guī)則
  18.3.5  設(shè)置編譯輸出目錄
  18.3.6  生成最終的Image文件
  18.4  如何增加一個(gè)product
  18.4.1  什么是一個(gè)product
  18.4.2  如何增加一個(gè)product
  18.5  如何增加一個(gè)項(xiàng)目
  18.5.1  項(xiàng)目類(lèi)別和項(xiàng)目路徑
  18.5.2  添加一個(gè)C項(xiàng)目
  18.5.3  添加一個(gè)APK項(xiàng)目
  18.6  APK編譯過(guò)程
  18.6.1  總體編譯過(guò)程概述
  18.6.2  生成R.java
  18.6.3  編譯aidl文件
  18.6.4  包含Java靜態(tài)庫(kù)
  18.6.5  編譯Java源文件生成Jar包
  18.6.6  將Jar包轉(zhuǎn)換為dex文件
  18.6.7  編譯資源文件生成APK包
  18.6.8  將dex文件添加到APK包中
  18.6.9  添加JNI所需的動(dòng)態(tài)庫(kù)文件
  18.6.10  對(duì)APK文件進(jìn)行簽名
  18.6.11  使用zipalign優(yōu)化APK內(nèi)部存儲(chǔ)
  18.7  Framework的編譯
  18.7.1  總體編譯過(guò)程
  18.7.2  framework/core/ext三個(gè)Jar文件的區(qū)別
  18.8  編譯android.jar
  18.8.1  資源文件
  18.8.2  aidl文件
  18.8.3  Java文件
  18.9  編譯adt插件
  18.10  總結(jié)
 第19章  編譯自己的Rom
  19.1  嵌入式系統(tǒng)的內(nèi)存地址空間
  19.2  各種映像(Image)文件的作用
  19.3  編譯Nexus S(NS)的Image文件
  19.3.1  編譯Linux Kernel
  19.3.2  提取NS的私有驅(qū)動(dòng)文件
  19.3.3  編譯system.img文件
  19.3.4  創(chuàng)建ramdisk.img
  19.3.5  創(chuàng)建boot.img文件
  19.4  使用fastboot寫(xiě)入Image文件
  19.5  最后驗(yàn)證
  19.5.1  解決觸摸按鍵問(wèn)題
  19.5.2  解決音量和電源鍵
  19.5.3  WIFI問(wèn)題
  19.5.4  安裝Google Mobile Service(GMS)
第5部分  硬件驅(qū)動(dòng)篇
 第20章  基于TI OMAP處理器的 Techshine 開(kāi)發(fā)板介紹
  20.1  Techv-35XX開(kāi)發(fā)板概述
  20.2  交叉編譯環(huán)境配置
  20.3  x-loader編譯
  20.4  u-boot編譯
  20.5  Techv-35XX Linux驅(qū)動(dòng)和內(nèi)核配置及編譯
  20.5.1  Touchscreen驅(qū)動(dòng)配置
  20.5.2  KeyBoard驅(qū)動(dòng)配置
  20.5.3  Audio驅(qū)動(dòng)配置
  20.5.4  MMC/SD驅(qū)動(dòng)配置
  20.5.5  NandFlash驅(qū)動(dòng)配置
  20.5.6  LCD驅(qū)動(dòng)配置
  20.5.7  內(nèi)核編譯
  20.6  Techv-35XX Android驅(qū)動(dòng)編寫(xiě)
  20.7  Techv-35XX Android開(kāi)發(fā)環(huán)境建立
  20.8  編譯Android Donut
  20.9  Android根文件系統(tǒng)的制作
  20.10  相關(guān)Image文件的燒寫(xiě)
  20.11  Android 根文件系統(tǒng)安裝

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)