Android底層開發(fā)技術(shù)實(shí)戰(zhàn)詳解

出版時間:2012-8  出版社:電子工業(yè)出版社  作者:王振麗  
Tag標(biāo)簽:無  

內(nèi)容概要

本書從底層原理開始講起,結(jié)合真實(shí)的案例向讀者詳細(xì)介紹了Android內(nèi)核、移植和驅(qū)動開發(fā)的整個流程。全書分為19章,依次講解驅(qū)動移植的必要性,何為HAL層深入分析,Goldfish、MSM、MAP內(nèi)核和驅(qū)動解析,顯示系統(tǒng)、輸入系統(tǒng)、振動器系統(tǒng)、音頻系統(tǒng)、視頻輸出系統(tǒng)的驅(qū)動,OpenMax多媒體、多媒體插件框架,傳感器、照相機(jī)、Wi-Fi、藍(lán)牙、GPS和電話系統(tǒng)等。在每一章中,重點(diǎn)介紹了與Android驅(qū)動開發(fā)相關(guān)的底層知識,并對Android源代碼進(jìn)行了剖析。

書籍目錄

第1章 Android底層開發(fā)基礎(chǔ)1
1.1 什么是驅(qū)動1
1.1.1 驅(qū)動程序的魅力1
1.1.2 電腦中的驅(qū)動2
1.1.3 手機(jī)中的驅(qū)動程序2
1.2 開源還是不開源的問題3
1.2.1 霧里看花的開源3
1.2.2 從為什么選擇Java談為什么不
開源驅(qū)動程序3
1.2.3 對驅(qū)動開發(fā)者來說是一把雙刃劍4
1.3 Android和Linux4
1.3.1 Linux簡介5
1.3.2 Android和Linux的關(guān)系5
1.4 簡析Linux內(nèi)核8
1.4.1 內(nèi)核的體系結(jié)構(gòu)8
1.4.2 和Android密切相關(guān)的Linux
內(nèi)核知識10
1.5 分析Linux內(nèi)核源代碼很有必要14
1.5.1 源代碼目錄結(jié)構(gòu)14
1.5.2 瀏覽源代碼的工具16
1.5.3 為什么用匯編語言編寫內(nèi)核
代碼17
1.5.4 Linux內(nèi)核的顯著特性18
1.5.5 學(xué)習(xí)Linux內(nèi)核的方法26
第2章 分析Android源代碼31
2.1 搭建Linux開發(fā)環(huán)境和工具31
2.1.1 搭建Linux開發(fā)環(huán)境31
2.1.2 設(shè)置環(huán)境變量32
2.1.3 安裝編譯工具32
2.2 獲取Android源代碼33
2.3 分析并編譯Android源代碼35
2.3.1 Android源代碼的結(jié)構(gòu)35
2.3.2 編譯Android源代碼40
2.3.3 運(yùn)行Android源代碼42
2.3.4 實(shí)踐演練——演示編譯Android
程序的兩種方法43
2.4 編譯Android Kernel47
2.4.1 獲取Goldfish內(nèi)核代碼47
2.4.2 獲取MSM內(nèi)核代碼50
2.4.3 獲取OMAP內(nèi)核代碼50
2.4.4 編譯Android的Linux內(nèi)核50
2.5 運(yùn)行模擬器52
2.5.1 Linux環(huán)境下運(yùn)行模擬器的方法53
2.5.2 模擬器輔助工具——adb54
第3章 驅(qū)動需要移植57
3.1 驅(qū)動開發(fā)需要做的工作57
3.2 Android移植59
3.2.1 移植的任務(wù)60
3.2.2 移植的內(nèi)容60
3.2.3 驅(qū)動開發(fā)需要做的工作61
3.3 Android對Linux的改造61
3.3.1 Android對Linux內(nèi)核文件的
改動62
3.3.2 為Android構(gòu)建 Linux的操作
系統(tǒng)63
3.4 內(nèi)核空間和用戶空間接口是一
個媒介64
3.4.1 內(nèi)核空間和用戶空間的相互
作用64
3.4.2 系統(tǒng)和硬件之間的交互64
3.4.3 使用Relay實(shí)現(xiàn)內(nèi)核到用戶空
間的數(shù)據(jù)傳輸66
3.5 三類驅(qū)動程序70
3.5.1 字符設(shè)備驅(qū)動程序70
3.5.2 塊設(shè)備驅(qū)動程序79
3.5.3 網(wǎng)絡(luò)設(shè)備驅(qū)動程序82
第4章 HAL層深入分析84
4.1 認(rèn)識HAL層84
4.1.1 HAL層的發(fā)展84
4.1.2 過去和現(xiàn)在的區(qū)別86
4.2 分析HAL層源代碼86
4.2.1 分析HAL moudle86
4.2.2 分析mokoid工程89
4.3 總結(jié)HAL層的使用方法98
4.4 傳感器在HAL層的表現(xiàn)101
4.4.1 HAL層的Sensor代碼102
4.4.2 總結(jié)Sensor編程的流程104
4.4.3 分析Sensor源代碼看Android
API 與硬件平臺的銜接104
4.5 移植總結(jié)116
4.5.1 移植各個Android部件的方式116
4.5.2 移植技巧之一——不得不說的
輔助工作117
第5章 Goldfish下的驅(qū)動解析125
5.1 staging驅(qū)動125
5.1.1 staging驅(qū)動概述125
5.1.2 Binder驅(qū)動程序126
5.1.3 Logger驅(qū)動程序135
5.1.4 Lowmemorykiller組件136
5.1.5 Timed Output驅(qū)動程序137
5.1.6 Timed Gpio驅(qū)動程序139
5.1.7 Ram Console驅(qū)動程序139
5.2 wakelock和early_suspend140
5.2.1 wakelock和early_suspend的
原理140
5.2.2 Android休眠141
5.2.3 Android喚醒144
5.3 Ashmem驅(qū)動程序145
5.4 Pmem驅(qū)動程序148
5.5 Alarm驅(qū)動程序149
5.5.1 Alarm簡析149
5.5.2 Alarm驅(qū)動程序的實(shí)現(xiàn)150
5.6 USB Gadget驅(qū)動程序151
5.7 Android Paranoid驅(qū)動程序153
5.8 Goldfish設(shè)備驅(qū)動154
5.8.1 FrameBuffer驅(qū)動155
5.8.2 鍵盤驅(qū)動159
5.8.3 實(shí)時時鐘驅(qū)動程序160
5.8.4 TTY終端驅(qū)動程序161
5.8.5 NandFlash驅(qū)動程序162
5.8.6 MMC驅(qū)動程序162
5.8.7 電池驅(qū)動程序162
第6章 MSM內(nèi)核和驅(qū)動解析164
6.1 MSM基礎(chǔ)164
6.1.1 常見MSM處理器產(chǎn)品164
6.1.2 Snapdragon內(nèi)核介紹165
6.2 移植MSM內(nèi)核簡介166
6.3 移植MSM168
6.3.1 Makefile文件168
6.3.2 驅(qū)動和組件170
6.3.3 設(shè)備驅(qū)動172
6.3.4 高通特有的組件174
第7章 OMAP內(nèi)核和驅(qū)動解析177
7.1 OMAP基礎(chǔ)177
7.1.1 OMAP簡析177
7.1.2 常見OMAP處理器產(chǎn)品177
7.1.3 開發(fā)平臺178
7.2 OMAP內(nèi)核178
7.3 移植OMAP體系結(jié)構(gòu)180
7.3.1 移植OMAP平臺180
7.3.2 移植OMAP處理器183
7.4 移植Android專用驅(qū)動和組件188
7.5 OMAP的設(shè)備驅(qū)動190
第8章 顯示系統(tǒng)驅(qū)動應(yīng)用195
8.1 顯示系統(tǒng)介紹195
8.1.1 Android的版本195
8.1.2 不同版本的顯示系統(tǒng)195
8.2 移植和調(diào)試前的準(zhǔn)備196
8.2.1 FrameBuffer驅(qū)動程序196
8.2.2 硬件抽象層198
8.3 實(shí)現(xiàn)顯示系統(tǒng)的驅(qū)動程序210
8.3.1 Goldfish中的FrameBuffer驅(qū)動
程序210
8.3.2 使用Gralloc模塊的驅(qū)動程序214
8.4 MSM高通處理器中的顯示驅(qū)動
實(shí)現(xiàn)224
8.4.1 MSM中的FrameBuffer驅(qū)動
程序225
8.4.2 MSM中的Gralloc驅(qū)動程序227
8.5 OMAP處理器中的顯示驅(qū)動實(shí)現(xiàn)235
第9章 輸入系統(tǒng)驅(qū)動應(yīng)用239
9.1 輸入系統(tǒng)介紹239
9.1.1 Android輸入系統(tǒng)結(jié)構(gòu)元素
介紹239
9.1.2 移植Android輸入系統(tǒng)時的
工作240
9.2 Input(輸入)驅(qū)動241
9.3 模擬器的輸入驅(qū)動256
9.4 MSM高通處理器中的輸入驅(qū)動
實(shí)現(xiàn)257
9.4.1 觸摸屏驅(qū)動257
9.4.2 按鍵和軌跡球驅(qū)動264
9.5 OMAP處理器平臺中的輸入驅(qū)
動實(shí)現(xiàn)266
9.5.1 觸摸屏驅(qū)動267
9.5.2 鍵盤驅(qū)動267
第10章 振動器系統(tǒng)驅(qū)動269
10.1 振動器系統(tǒng)結(jié)構(gòu)269
10.1.1 硬件抽象層271
10.1.2 JNI框架部分272
10.2 開始移植273
10.2.1 移植振動器驅(qū)動程序273
10.2.2 實(shí)現(xiàn)硬件抽象層274
10.3 在MSM平臺實(shí)現(xiàn)振動器驅(qū)動275
第11章 音頻系統(tǒng)驅(qū)動279
11.1 音頻系統(tǒng)結(jié)構(gòu)279
11.2 分析音頻系統(tǒng)的層次280
11.2.1 層次說明280
11.2.2 Media庫中的Audio框架281
11.2.3 本地代碼284
11.2.4 JNI代碼288
11.2.5 Java代碼289
11.3 移植Audio系統(tǒng)的必備技術(shù)289
11.3.1 移植Audio系統(tǒng)所要做的
工作289
11.3.2 分析硬件抽象層290
11.3.3 分析AudioFlinger中的Audio
硬件抽象層的實(shí)現(xiàn)291
11.4 真正實(shí)現(xiàn)Audio硬件抽象層298
11.5 MSM平臺實(shí)現(xiàn)Audio驅(qū)動系統(tǒng)298
11.5.1 實(shí)現(xiàn)Audio驅(qū)動程序298
11.5.2 實(shí)現(xiàn)硬件抽象層299
11.6 OSS平臺實(shí)現(xiàn)Audio驅(qū)動系統(tǒng)304
11.6.1 OSS驅(qū)動程序介紹304
11.6.2 mixer305
11.7 ALSA平臺實(shí)現(xiàn)Audio系統(tǒng)312
11.7.1 注冊音頻設(shè)備和音頻驅(qū)動312
11.7.2 在Android中使用ALSA
聲卡313
11.7.3 在OMAP平臺移植Android
的ALSA聲卡驅(qū)動322
第12章 視頻輸出系統(tǒng)驅(qū)動326
12.1 視頻輸出系統(tǒng)結(jié)構(gòu)326
12.2 需要移植的部分328
12.3 分析硬件抽象層328
12.3.1 Overlay系統(tǒng)硬件抽象層的
接口328
12.3.2 實(shí)現(xiàn)Overlay系統(tǒng)的硬件抽
象層331
12.3.3 實(shí)現(xiàn)接口3

章節(jié)摘錄

版權(quán)頁:   插圖:   Wi—Fi系統(tǒng)Java層的核心是根據(jù)IWifiManger接口所創(chuàng)建的Binder服務(wù)器端和客戶端,服務(wù)器端是WifiService,客戶端是WifiManger。 編譯IWiflManger.aidl生成文件IWiflManger.java,并生成IWifiManger.Stub(服務(wù)器端抽象類)和IWifiManger.Stub.Proxy(客戶端代理實(shí)現(xiàn)類)。WifiService通過繼承IWifiManger.Stub實(shí)現(xiàn),而客戶端通過9etService()函數(shù)獲取IWifiManger.Stub.Proxy(即Service的代理類),將其作為參數(shù)傳遞給WifiManger,供其與WifiService通信時使用。 Wi—Fi系統(tǒng)Java部分的核心是根據(jù)IWifiManager接口所創(chuàng)建的Binder服務(wù)器端和客戶端,服務(wù)器端是WifiService,客戶端是WifiManager。具體結(jié)構(gòu)如圖17—4所示。 圖17—4中主要構(gòu)成元素的具體說明如下所示。 (1)WiFiManger是Wi—Fi部分與外界的接口,用戶通過它來訪問Wi—Fi的核心功能。WifiWatchdogService這一系統(tǒng)組件也是用WifiManger來執(zhí)行一些具體操作。 (2)WifiService是服務(wù)器端的實(shí)現(xiàn),作為Wi—Fi的核心,處理實(shí)際的驅(qū)動加載、掃描、鏈接/斷開等命令,以及底層上報的事件。,對于主動的命令控制,Wi—Fi是一個簡單的封裝,針對來自客戶端的控制命令,調(diào)用相應(yīng)的WifiNative底層實(shí)現(xiàn)。 當(dāng)接收到客戶端的命令后,一般會將其轉(zhuǎn)換成對應(yīng)的自身消息塞入消息隊(duì)列中,以便客戶端的調(diào)用可以及時返回,然后在WifiHandler的handleMessage()中處理對應(yīng)的消息。而底層上報的事件,WifiService則通過啟動WifiStateTracker來負(fù)責(zé)處理。WifiStateTracker和wifiMonitor的具體功能如下所示。 WifiStateTracker除了負(fù)責(zé)WiFi的電源管理模式等功能外,其核心是WifiMonitor所實(shí)現(xiàn)的事件輪詢機(jī)制,以及消息處理函數(shù)handleMessage()。 WifLMonitor通過開啟一個MonitorThread來實(shí)現(xiàn)事件的輪詢,輪詢的關(guān)鍵函數(shù)是前面提到的阻塞式函數(shù)WifiNative.waitForEvent()。獲取事件后,WifiMonitor通過一系列的Handler通知給WifiStateTracker。這里WifiMonitor的通知機(jī)制是將底層事件轉(zhuǎn)換成WifiStateTracker所能識別的消息,塞入WifiStateTracker的消息循環(huán)中,最終在handleMessage()中由WifiStateTracker完成對應(yīng)的處理。

編輯推薦

《Android底層開發(fā)技術(shù)實(shí)戰(zhàn)詳解:內(nèi)核、移植和驅(qū)動》適合Android研發(fā)人員及Android愛好者學(xué)習(xí),也可以作為相關(guān)培訓(xùn)學(xué)校和大專院校相關(guān)專業(yè)的教學(xué)用書。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    Android底層開發(fā)技術(shù)實(shí)戰(zhàn)詳解 PDF格式下載


用戶評論 (總計56條)

 
 

  •   Android底層開發(fā)技術(shù)實(shí)戰(zhàn)詳解:內(nèi)核、移植和驅(qū)動 看看
  •   對android底層開發(fā)學(xué)習(xí)參考很有幫助
  •   對內(nèi)核驅(qū)動講的和細(xì),內(nèi)容很充實(shí)!
  •   學(xué)android不可缺少的一本書
  •   現(xiàn)在正在做rom移植,正好用
  •   代碼放得很充分,講解也很詳細(xì)
  •   這本書不錯,剛剛買來看,等著假期可以研究一下。。。
  •   沒什么用,毫無實(shí)用性
  •   正版,很有幫助,不錯
  •   自學(xué)用,非常好!
  •   不錯理論很強(qiáng) 支持 頂
  •   快遞員不錯哦,哈哈態(tài)度很好,書也不錯
  •   看不錯的書籍,值得推薦。
  •   正在啃...
  •   好好學(xué)習(xí)一陣子才能發(fā)現(xiàn)好不好呢,
  •   好書任我選
  •   不錯吧 剛收到
  •   東西很好,在當(dāng)當(dāng)買了無數(shù)次東西了,不論是商品質(zhì)量,還是服務(wù)都很滿意,特別是快遞,負(fù)責(zé)我們這一片的那個快遞員真的是好的沒話說,風(fēng)雨無阻,態(tài)度超好,有時候沒在家,他跑好幾趟來送,都沒有半句怨言,真心的贊一下他!
  •   大概翻了一下,還可以。
  •   好的 不錯呀 很好
  •   十五字十五字
  •   《Android系統(tǒng)級深入開發(fā)——移植與調(diào)試》 韓超,梁泉著 電子工業(yè)出版社《Android底層開發(fā)技術(shù)實(shí)戰(zhàn)詳解:內(nèi)核、移植和驅(qū)動》 王振麗 電子工業(yè)出版社《Android驅(qū)動開發(fā)與移植實(shí)戰(zhàn)詳解》 李駿,陳小玉著 人民郵電出版社以上三本書內(nèi)容雷同:目錄,文字,代碼絕大部分相同!說吧,你們誰抄誰的?或者你們一起抄的誰?那么大的人了,還把照片印在書上,丟人不丟人?就算不是你們寫的,你們也抄個寫的好點(diǎn)的書,這書寫的不怎么樣,就是個資料羅列,沒什么作者的思想,翻譯的手冊?你們抄了別人翻譯的手冊來出書?那更丟人了!不過買到三本差不多的書也有好處,今后有人問我借書,我就不會那么舍不得了。
  •   客觀地說,這是本我需要的書。我先去了書店,最先看中的是《Android底層接口與驅(qū)動開發(fā)技術(shù)詳解》一書,很合我意,標(biāo)價79元,貴!當(dāng)然,我的本意是先去書店實(shí)際了解一下各種書的內(nèi)容,看好后網(wǎng)購,原因大家都知道,不僅僅是價格。后來無意中發(fā)現(xiàn)了另一本書《Android底層開發(fā)技術(shù)實(shí)戰(zhàn)詳解:內(nèi)核、移植和驅(qū)動》,驚訝地發(fā)現(xiàn),兩本書驚人的一致,幾乎可以說完全是一個模子出來的,只是書名、作者、價格不同而已。當(dāng)時就感慨萬分:中國的學(xué)術(shù)界怎么了?為了名聲為了職稱,互相抄來抄去;中國的出版界怎么了?掉到錢眼里了,沒有了底線,只要所謂作者(確切地說是抄者)掏錢,就給你印。最后,選擇了《Android底層開發(fā)技術(shù)實(shí)戰(zhàn)詳解:內(nèi)核、移植和驅(qū)動》,就因?yàn)楸阋恕?/li>
  •   一直都在學(xué)嵌入式,但是感覺操作系統(tǒng)一直不會。建議學(xué)這個的時候先學(xué)學(xué)linux。
  •   簡單看了一下,還沒細(xì)看,感覺寫得很詳盡*感覺想要學(xué)好它,還需要學(xué)好基礎(chǔ)的嵌入式開發(fā)*
  •   對框架描述得不夠
  •   感覺這本書還不錯,就算注釋太少了點(diǎn)
  •   果然是好書 值得深深的去看了
  •   這些書都是小參考,沒有幫上我太多忙,具體還得自己研究研究.
  •   初步看了一下目錄和前面的部分,還是挺實(shí)用的,詳略得當(dāng),有參考價值。
  •   總的來說不錯把總的來說不錯把總的來說不錯把總的來說不錯把總的來說不錯把
  •   書一般。并不是太好,但也可以看看。
  •   雖然有些錯字,基本上內(nèi)容還算。以2012出版的書,有些資料不是最新的.
  •   一般吧~,作為參考書還好~
  •   不是正版,印刷還有多余的墨跡。內(nèi)容一般不夠深入,就大概講在哪個目錄。其他什么都沒有了。
  •   感覺一般,專題多,但不深入
  •   書的內(nèi)容只能說一般吧
  •   還沒有看完呢。
  •   寄過來的書全是土啊 太臟了?。。?!
  •   用處不是很大,對我個人來講內(nèi)容有點(diǎn)舊
  •   封面很臟,感覺不像是新書,書的內(nèi)容還沒看
  •   完全就是一本目錄。作者,你出這書的時候臉紅不?
  •   略微看了下,紙張,內(nèi)容都蠻好的,,,在學(xué)習(xí)中。。。
  •   Android底層開發(fā)技術(shù)實(shí)戰(zhàn)詳解:內(nèi)核、移植和驅(qū)動
  •   公司買的,還可以吧。
  •   你是想讓讀者看源碼的嗎?
  •   就是一本用代碼拼湊的垃圾。
  •   不錯,android底層開發(fā)的好書
  •   感謝作者點(diǎn)努力,用優(yōu)美的語言,將枯燥的底層知識娓娓道來,使我的閱讀充滿了快樂!
  •   android開發(fā)書籍,一般吧
  •   又大又空
  •   安卓開發(fā)叢書
  •   公司買的看不懂
  •   確實(shí)很詳細(xì)
  •   不錯的工具書!~
  •   很有用的一本技術(shù)書
 

250萬本中文圖書簡介、評論、評分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7