Android技術(shù)內(nèi)幕

出版時(shí)間:2011-6  出版社:機(jī)械工業(yè)出版社  作者:楊豐盛  頁數(shù):546  
Tag標(biāo)簽:無  

前言

前言經(jīng)過三年的發(fā)展,Android已經(jīng)從最初的智能電話領(lǐng)域逐漸進(jìn)入教育、醫(yī)療、軍事、汽車、家居等重要領(lǐng)域。它一路披荊斬棘,攻城拔寨,發(fā)展勢頭有目共睹,已經(jīng)成為移動(dòng)平臺領(lǐng)域當(dāng)之無愧的王者。目前,已有眾多設(shè)備開始選擇使用Android系統(tǒng),比如智能手機(jī)、智能電視、平板電腦、上網(wǎng)本、MP3、MP4、智能相機(jī)等;相信在不久的未來,還將有更多采用Android系統(tǒng)的高科技產(chǎn)品進(jìn)入我們的生活。這些設(shè)備將產(chǎn)生各種各樣的應(yīng)用需求,尤其是與Android系統(tǒng)底層相關(guān)的應(yīng)用,這將給開發(fā)者帶來大量的機(jī)會,尤其是系統(tǒng)級應(yīng)用開發(fā)工程師。Android基于Linux內(nèi)核,但它并不是標(biāo)準(zhǔn)的Linux。因?yàn)镚oogle為了讓Android更適合移動(dòng)手持設(shè)備,對Linux內(nèi)核進(jìn)行了各種優(yōu)化和增強(qiáng),這些增強(qiáng)的部分也正是從事Android系統(tǒng)開發(fā)的嵌入式系統(tǒng)工程師所急需了解的內(nèi)容;同時(shí)Android的源代碼不僅復(fù)雜,而且代碼量巨大,各模塊之間聯(lián)系緊密。這讓大多數(shù)Android應(yīng)用開發(fā)者不知從何處入手,他們都希望能夠有一本系統(tǒng)且全面的,對Android內(nèi)核的構(gòu)架和實(shí)現(xiàn)原理進(jìn)行分析的書,而國內(nèi)目前分析Android底層實(shí)現(xiàn)的書籍甚少。因此,筆者對自身的實(shí)戰(zhàn)經(jīng)驗(yàn)進(jìn)行了總結(jié)和整理,編寫了本書,希望能夠幫助眾多Android應(yīng)用開發(fā)者更快、更深入地理解Android各個(gè)部分的具體實(shí)現(xiàn),從而為開發(fā)各種系統(tǒng)級的應(yīng)用做好準(zhǔn)備。本書分為兩卷,系統(tǒng)卷和應(yīng)用卷。系統(tǒng)卷主要分析Android系統(tǒng)層的實(shí)現(xiàn),包括Android系統(tǒng)構(gòu)架中的下面三層:Linux內(nèi)核層、硬件抽象層、系統(tǒng)運(yùn)行庫層;應(yīng)用卷介紹Android系統(tǒng)構(gòu)架中的上面兩層,重在分析Android應(yīng)用層的實(shí)現(xiàn),包括應(yīng)用程序框架層和應(yīng)用層。具體如圖1所示:圖1Android系統(tǒng)構(gòu)架①圖中Linux內(nèi)核(Kernel)部分是本書系統(tǒng)卷第一部分的內(nèi)容,主要分析Android的核心驅(qū)動(dòng)程序的實(shí)現(xiàn),包括驅(qū)動(dòng)程序的系統(tǒng)構(gòu)架、原理和實(shí)現(xiàn)。掌握這部分內(nèi)容后,讀者將能夠修改和編寫Android的各個(gè)設(shè)備驅(qū)動(dòng)程序。緊接著上面則是硬件抽象層,本書第7章通過大量篇幅深入分析了Android中各個(gè)模塊的硬件抽象層實(shí)現(xiàn),使讀者在掌握Android中已有的硬件設(shè)備接口實(shí)現(xiàn)的同時(shí),能夠獨(dú)立編寫適合自己的硬件設(shè)備驅(qū)動(dòng)的抽象層接口。圖中的Libraries部分即本書的第6章,分析了Android的系統(tǒng)庫、程序庫和功能庫的具體實(shí)現(xiàn),它能讓讀者在理解Android的各種功能的底層實(shí)現(xiàn)的同時(shí),還能按照功能需求進(jìn)行擴(kuò)展和優(yōu)化。最后,圖中的Android運(yùn)行時(shí)(Runtime)部分又分為Dalvik虛擬機(jī)和核心庫兩部分,分別在本書的第8章和第9章介紹,剖析了Dalvik虛擬機(jī)的構(gòu)架與實(shí)現(xiàn),以及Android核心庫和API的運(yùn)作機(jī)制,使讀者能夠完成Android運(yùn)行庫的移植和修改。本書面向的讀者本書(系統(tǒng)卷)主要分析了Android系統(tǒng)底層的構(gòu)架與實(shí)現(xiàn)原理,從源代碼的獲取和系統(tǒng)開發(fā)環(huán)境的搭建,到Android Kernel的核心實(shí)現(xiàn),再到硬件抽象層和Android運(yùn)行庫等各個(gè)模塊的細(xì)節(jié)實(shí)現(xiàn),讓讀者可以從更深的層次去理解Android的系統(tǒng)構(gòu)架,并對Android系統(tǒng)進(jìn)行移植和二次開發(fā)。閱讀本書的一個(gè)必要條件是對Linux內(nèi)核有一定了解,因此本書(系統(tǒng)卷)非常適合以下開發(fā)人員閱讀:Android系統(tǒng)開發(fā)/移植工程師Android驅(qū)動(dòng)開發(fā)/移植工程師Android系統(tǒng)構(gòu)架師嵌入式系統(tǒng)工程師應(yīng)用卷則重在分析Android的應(yīng)用層和應(yīng)用程序框架層的運(yùn)作機(jī)制,從基礎(chǔ)的應(yīng)用程序剖析入手,到應(yīng)用程序API的實(shí)現(xiàn),再到各模塊的原理,讓讀者對Android有更深入、更全面的認(rèn)識,同時(shí)結(jié)合商業(yè)案例的分析,讓讀者不僅能使用API開發(fā)應(yīng)用,更能對API功能進(jìn)行擴(kuò)展,從而滿足開發(fā)中的各種需求。因此,應(yīng)用卷非常適合以下人員閱讀:Android應(yīng)用開發(fā)/移植工程師Android游戲開發(fā)/移植工程師Android構(gòu)架師如何閱讀本書在編寫本書之前,筆者收到很多《Android應(yīng)用開發(fā)揭秘》一書的讀者發(fā)來的郵件,他們都希望有一本能深入講解Android實(shí)現(xiàn)原理的書籍,因此編寫了本書,旨在幫助眾多開發(fā)者晉級。本書分為兩冊,如果是進(jìn)行系統(tǒng)級開發(fā),建議閱讀本卷;如果是進(jìn)行應(yīng)用開發(fā),建議閱讀應(yīng)用卷。本書是以Android源碼為基礎(chǔ)進(jìn)行分析的,因?yàn)樵创a內(nèi)容很多,不能全部列出來,因此筆者建議在閱讀本書的同時(shí),最好能對照查看Android的源碼實(shí)現(xiàn)(本書的所有代碼清單都指明了它在源碼中的路徑,以方便大家查看);另外,本書中有多處標(biāo)記為“注意”、“擴(kuò)展學(xué)習(xí)”的內(nèi)容,都是一些實(shí)戰(zhàn)經(jīng)驗(yàn)。最后,雖然Android的各部分聯(lián)系緊密,但各個(gè)部分的講解都較為完整,大家仍然可以根據(jù)需要調(diào)整閱讀順序。致謝感謝所有在本書寫作過程中給予過我指導(dǎo)、幫助和鼓勵(lì)的朋友,尤其是本書的策劃編輯楊福川,他不僅對本書提出了寶貴的寫作建議,而且還和他的同事曾珊對書稿進(jìn)行了仔細(xì)的審閱。感謝一直以來信任、鼓勵(lì)和支持我的父母和其他親人。最后還要感謝我的女友,正是你的愛與支持,才使我有了今天的收獲。雖然我熱切地希望與廣大讀者朋友分享Android系統(tǒng)的底層實(shí)現(xiàn)技術(shù),但由于時(shí)間有限,書中難免存在疏漏與錯(cuò)誤,誠懇地希望各位讀者批評和指正。如果發(fā)現(xiàn)書中有任何問題,或是想與我交流關(guān)于Android開發(fā)的相關(guān)話題,歡迎通過Android.Yarin@gmail.com與我聯(lián)系。希望能結(jié)識更多的朋友,大家共同進(jìn)步。一般而言,Android系統(tǒng)在構(gòu)架上分為4層,分別為:應(yīng)用層、應(yīng)用框架層、系統(tǒng)運(yùn)行庫層和Linux內(nèi)核層;為了使分析更加深入透徹,本書將系統(tǒng)運(yùn)行庫層和Linux內(nèi)核層之間與硬件及其驅(qū)動(dòng)相關(guān)的內(nèi)容單獨(dú)劃分為一層——硬件抽象層。

內(nèi)容概要

  《Android技術(shù)內(nèi)幕:系統(tǒng)卷》是國內(nèi)首本系統(tǒng)對Android的源代碼進(jìn)行深入分析的著作。全書將Android系統(tǒng)從構(gòu)架上依次分為應(yīng)用層、應(yīng)用框架層、系統(tǒng)運(yùn)行庫層、硬件抽象層和Linux內(nèi)核層等5個(gè)層次,旨在通過對Android系統(tǒng)源代碼的全面分析來幫助開發(fā)者加深對Android系統(tǒng)架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)原理的認(rèn)識,從而幫助他們解決開發(fā)中遇到的更加復(fù)雜的問題。
  全書分為兩卷,系統(tǒng)卷主要分析了Linux內(nèi)核層、硬件抽象層和系統(tǒng)運(yùn)行庫層的各個(gè)模塊的底層原理和實(shí)現(xiàn)細(xì)節(jié);應(yīng)用卷主要分析了應(yīng)用層和應(yīng)用框架層的各個(gè)模塊的底層原理和實(shí)現(xiàn)細(xì)節(jié)。
  具體而言,系統(tǒng)卷第1章首先從宏觀上介紹了Android系統(tǒng)的架構(gòu)以及各個(gè)層次之間的關(guān)系,然后介紹了如何獲取Android源代碼并搭建Android源代碼開發(fā)環(huán)境和閱讀環(huán)境的方法;第2章有針對性地剖析了Android的內(nèi)核機(jī)制和結(jié)構(gòu),以及Android對Linux內(nèi)核的改動(dòng)和增強(qiáng);第3章分析了Binder的架構(gòu)和工作機(jī)制,以及Binder驅(qū)動(dòng)的實(shí)現(xiàn)原理;第4章分析了Android電源管理模塊的機(jī)制與實(shí)現(xiàn);第5章全面地剖析了Android硬件設(shè)備驅(qū)動(dòng)(顯示、視頻、音頻、MTD、Event、藍(lán)牙、WLAN等)的工作原理和實(shí)現(xiàn),掌握這部分內(nèi)容即可修改和編寫基于Android的設(shè)備驅(qū)動(dòng)程序;第6章深刻闡述了Android原生庫的原理及實(shí)現(xiàn),涉及系統(tǒng)C庫、功能庫、擴(kuò)展庫和原生的Server等重要內(nèi)容;第7章系統(tǒng)地講解了硬件抽象層的原理與實(shí)現(xiàn),掌握這部分內(nèi)容即可編寫適合特定硬件設(shè)備驅(qū)動(dòng)的抽象層接口;第8章和第9章是對系統(tǒng)運(yùn)行庫層的分析,主要講解了Dalvik虛擬機(jī)的架構(gòu)、原理與實(shí)現(xiàn),以及Android的核心庫相關(guān)的知識,掌握這部分內(nèi)容即可完成對Android運(yùn)行庫的移植和修改。
  本書適合所有的高級Android應(yīng)用開發(fā)工程師、Android系統(tǒng)開發(fā)工程師、Android移植工程師、Android系統(tǒng)架構(gòu)師和所有對Android源碼實(shí)現(xiàn)感興趣的讀者。

作者簡介

楊豐盛,國內(nèi)Android領(lǐng)域的先驅(qū)者和布道者,資深A(yù)ndroid開發(fā)工程師,在Android應(yīng)用開發(fā)方面有豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)。他對Android的源代碼進(jìn)行了長達(dá)一年的系統(tǒng)學(xué)習(xí)和研究,對Android系統(tǒng)的架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)原理有非常深入的理解和認(rèn)識,理論功底也十分深厚。國內(nèi)著名IT技術(shù)網(wǎng)站51CTO推薦技術(shù)專家,曾多次接受《程序員》雜志采訪并為其撰稿,同時(shí)他還多次應(yīng)邀在國內(nèi)的移動(dòng)開發(fā)者大會和技術(shù)沙龍中開展講座,深受歡迎。他還是暢銷書作家,撰寫的《Android應(yīng)用開發(fā)揭秘》一書是目前Android領(lǐng)域口碑最好、銷量也最好的一本書之一,這本書自上市以來已經(jīng)重印9次,而且銷量一直排在當(dāng)當(dāng)網(wǎng)、卓越網(wǎng)和互動(dòng)網(wǎng)這3大網(wǎng)店的計(jì)算機(jī)類圖書的排行榜前列。
此外,他還精通Java、C、C++等語言,在機(jī)頂盒軟件開發(fā)和MTK平臺軟件開發(fā)方面有非常豐富的經(jīng)驗(yàn)。游戲開發(fā)也是他的專長,曾經(jīng)參與過《三國群英傳說》、《大航海傳奇》、《養(yǎng)成計(jì)劃》等游戲的開發(fā),2007年榮獲中國軟件行業(yè)協(xié)會游戲軟件分會(CGIA)認(rèn)證及國際游戲開發(fā)教育聯(lián)合會國際認(rèn)證。

書籍目錄

前言
第1章 準(zhǔn)備工作
 1.1 深入認(rèn)識Android
  1.1.1 Android的系統(tǒng)構(gòu)架
  1.1.2 Android的初始化流程
  1.1.3 各個(gè)層次之間的相互關(guān)系
  1.1.4 Android系統(tǒng)開發(fā)(移植)和應(yīng)用開發(fā)
 1.2 獲取和編譯Android的源碼
  1.2.1 環(huán)境配置
  1.2.2 獲取Android源碼
  1.2.3 編譯Android的源碼及其工具包
  1.2.4 運(yùn)行Android系統(tǒng)
 1.3 開發(fā)環(huán)境搭建
  1.3.1 應(yīng)用開發(fā)環(huán)境搭建
  1.3.2 源碼開發(fā)環(huán)境搭建
 1.4 Android源碼結(jié)構(gòu)
 1.5 小結(jié)
第2章 Android的內(nèi)核機(jī)制和結(jié)構(gòu)剖析
 2.1 Linux與Android的關(guān)系
  2.1.1 為什么會選擇Linux
  2.1.2 Android不是Linux
 2.2 Android對Linux內(nèi)核的改動(dòng)
  2.2.1 Goldfish
  2.2.2 YAFFS2
  2.2.3 藍(lán)牙
  2.2.4 調(diào)度器(Scheduler)
  2.2.5 Android新增的驅(qū)動(dòng)
  2.2.6 電源管理
  2.2.7 雜項(xiàng)
 2.3 Android對Linux內(nèi)核的增強(qiáng)
  2.3.1 Alarm(硬件時(shí)鐘)
  2.3.2 Ashmem(匿名內(nèi)存共享)
  2.3.3 Low Memory
  2.3.4 Logger(日志設(shè)備)
  2.3.5 Android PMEM
  2.3.6 switch
  2.3.7 Timed GPIO
  2.3.8 Android Ram
 2.4 小結(jié)
第3章 Android的IPC機(jī)制--Binder
 3.1 Binder概述
  3.1.1 為什么選擇Binder
  3.1.2 初識Binder
 3.2 Binder驅(qū)動(dòng)的原理和實(shí)現(xiàn)
  3.2.1 Binder驅(qū)動(dòng)的原理
  3.2.2 Binder驅(qū)動(dòng)的實(shí)現(xiàn)
 3.3 Binder的構(gòu)架與實(shí)現(xiàn)
  3.3.1 Binder的系統(tǒng)構(gòu)架
  3.3.2 Binder的機(jī)制和原理
 3.4 小結(jié)
第4章 電源管理
 4.1 電源管理概述
 4.2 電源管理結(jié)構(gòu)
 4.3 Android的電源管理機(jī)制
 4.4 Android電源管理機(jī)制的實(shí)現(xiàn)
 4.5 小結(jié)
第5章 驅(qū)動(dòng)的工作原理及實(shí)現(xiàn)機(jī)制
 5.1 顯示驅(qū)動(dòng)(Framebuffer)
  5.1.1 Framebuffer的工作原理
  5.1.2 Framebuffer的構(gòu)架
  5.1.3 Framebuffer驅(qū)動(dòng)的實(shí)現(xiàn)機(jī)制
 5.2 視頻驅(qū)動(dòng)(V4L和V4L2)
  5.2.1 V4L2介紹
  5.2.2 V4L2的原理和構(gòu)架
  5.2.3 V4L2的實(shí)現(xiàn)
 5.3 音頻驅(qū)動(dòng)(OSS和ALSA)
  5.3.1 OSS與ALSA介紹
  5.3.2 OSS的構(gòu)架與實(shí)現(xiàn)
  5.3.3 ALSA的構(gòu)架與實(shí)現(xiàn)
 5.4 MTD驅(qū)動(dòng)
  5.4.1 MTD驅(qū)動(dòng)的功能
  5.4.2 MTD驅(qū)動(dòng)的構(gòu)架
  5.4.3 MTD驅(qū)動(dòng)的原理及實(shí)現(xiàn)
 5.5 Event輸入設(shè)備驅(qū)動(dòng)
  5.5.1 Input的系統(tǒng)構(gòu)架
  5.5.2 Event輸入驅(qū)動(dòng)的構(gòu)架
  5.5.3 Event輸入驅(qū)動(dòng)的原理
  5.5.4 Event輸入驅(qū)動(dòng)的實(shí)現(xiàn)
 5.6 藍(lán)牙驅(qū)動(dòng)(Bluetooth)
  5.6.1 Bluetooth驅(qū)動(dòng)的構(gòu)架
  5.6.2 BlueZ的原理及實(shí)現(xiàn)
 5.7 WLAN驅(qū)動(dòng)(Wi-Fi)/244
  5.7.1 WLAN構(gòu)架
  5.7.2 Wi-Fi驅(qū)動(dòng)的實(shí)現(xiàn)原理
 5.8 小結(jié)
第6章 原生庫的原理及實(shí)現(xiàn)
 6.1 系統(tǒng)C庫(Bionic Libc)
  6.1.1 Bionic Libc功能概述
  6.1.2 Bionic Libc實(shí)現(xiàn)原理
 6.2 功能庫
  6.2.1 WebKit構(gòu)架與實(shí)現(xiàn)
  6.2.2 多媒體框架與實(shí)現(xiàn)
  6.2.3 Android SQLite框架及原理
 6.3 擴(kuò)展庫
  6.3.1 Skia底層庫分析
  6.3.2 OpenGL底層庫分析
  6.3.3 Android-OpenSSL實(shí)現(xiàn)及運(yùn)用
  6.3.4 FreeType及Font Engine
  6.3.5 FreeType結(jié)構(gòu)體系和渲染流程
 6.4 原生服務(wù)
  6.4.1 AudioFlinger實(shí)現(xiàn)
  6.4.2 SurfaceFlinger實(shí)現(xiàn)
 6.5 小結(jié)
第7章 硬件抽象層的原理與實(shí)現(xiàn)
 7.1 硬件抽象層的實(shí)現(xiàn)原理
  7.1.1 Android HAL構(gòu)架
  7.1.2 Android HAL的實(shí)現(xiàn)
 7.2 Android Overlay構(gòu)架與實(shí)現(xiàn)
  7.2.1 Android Overlay系統(tǒng)構(gòu)架
  7.2.2 Overlay HAL框架與實(shí)現(xiàn)
  7.2.3 Overlay與SurfaceFinger
 7.3 Android Camera
  7.3.1 Android Camera系統(tǒng)構(gòu)架
  7.3.2 Camera HAL框架與實(shí)現(xiàn)
  7.3.3 Camera本地實(shí)現(xiàn)
  7.4 Android Audio
  7.4.1 Audio HAL框架
  7.4.2 Android默認(rèn)的Audio HAL實(shí)現(xiàn)
  7.4.3 DUMP功能的Audio HAL實(shí)現(xiàn)
  7.4.4 基于A2dp的藍(lán)牙音頻設(shè)備HAL實(shí)現(xiàn)
  7.4.5 模擬器上的Audio HAL實(shí)現(xiàn)
 7.5 Android RIL實(shí)現(xiàn)
  7.5.1 Android RIL構(gòu)架
  7.5.2 radiooptiongs實(shí)現(xiàn)
  7.5.3 libril庫實(shí)現(xiàn)
  7.5.4 reference-ril庫實(shí)現(xiàn)
  7.5.5 RILD守護(hù)進(jìn)程實(shí)現(xiàn)
  7.5.6 request流程分析
  7.5.7 response流程分析
 7.6 Android Sensor
  7.6.1 Android Sensor構(gòu)建
  7.6.2 Sensor HAL接口
  7.6.3 Sensor HAL實(shí)現(xiàn)
 7.7 Android WIFI
  7.7.1 Android WIFI系統(tǒng)構(gòu)架
  7.7.2 wpa_supplicant框架
  7.7.3 WIFI HAL實(shí)現(xiàn)
 7.8 Android藍(lán)牙本地實(shí)現(xiàn)
  7.8.1 Android藍(lán)牙構(gòu)架
  7.8.2 BlueZ結(jié)構(gòu)體系
  7.8.3 BlueZ適配層
 7.9 Android 定位實(shí)現(xiàn)
  7.9.1 定位系統(tǒng)構(gòu)架
  7.9.2 GPS HAL實(shí)現(xiàn)
 7.10 Android Power
 7.11 Android Vibrator
 7.12 小結(jié)
第8章 Dalvik虛擬機(jī)的構(gòu)架、原理與實(shí)現(xiàn)
 8.1 Dalvik虛擬機(jī)概述
  8.1.1 什么是Dalvik虛擬機(jī)
  8.1.2 Dalvik虛擬機(jī)的功能
  8.1.3 Dalvik虛擬機(jī)與Java虛擬機(jī)的區(qū)別
 8.2 Dalvik構(gòu)架與實(shí)現(xiàn)
  8.2.1 Dalvik系統(tǒng)構(gòu)架
  8.2.2 dx和dexdump工具
  8.2.3 .dex文件格式解析
  8.2.4 Dalvik內(nèi)部機(jī)制
  8.2.5 Dalvik進(jìn)程管理
  8.2.6 Dalvik內(nèi)存管理
  8.2.7 Dalvik加載器
  8.2.8 Dalvik解釋器
  8.2.9 Dalvik JIT
 8.3 JNI的構(gòu)架與實(shí)現(xiàn)
  8.3.1 JNI構(gòu)架
  8.3.2 JNI實(shí)現(xiàn)
 8.4 小結(jié)
第9章 Android 核心庫
 9.1 Android核心庫簡介
 9.2 Android系統(tǒng)API
  9.2.1 android包
  9.2.2 android資源包
  9.2.3 ApiCheck機(jī)制
 9.3 小結(jié)
后記
    

媒體關(guān)注與評論

《Android技術(shù)內(nèi)幕:系統(tǒng)卷》是Android開發(fā)者不可不看的一本翔實(shí)、全面、深入的Android著作,對Android系統(tǒng)的源代碼進(jìn)行了全面的分析,不愧為“技術(shù)內(nèi)幕”,強(qiáng)烈推薦!——機(jī)鋒網(wǎng)毫無疑問,移動(dòng)開發(fā)是軟件開發(fā)領(lǐng)域當(dāng)下最熱門的話題之一,其中Android開發(fā)又是移動(dòng)開發(fā)領(lǐng)域的焦點(diǎn)。目前市面上關(guān)于Android開發(fā)的書很多,但是從源代碼角度系統(tǒng)分析Android架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理的書卻沒有,本書填補(bǔ)了市場空白。本書有兩大特點(diǎn):宏觀上足夠有高度,Android系統(tǒng)的五層架構(gòu)一覽無余;微觀上足夠有深度,對Android系統(tǒng)的Linux內(nèi)核層、硬件抽象層和系統(tǒng)運(yùn)行庫層得各個(gè)模塊的實(shí)現(xiàn)原理進(jìn)行了深入的分析。這是一本難得的經(jīng)典之作,強(qiáng)烈推薦!——51CTO移動(dòng)開發(fā)頻道無論是移動(dòng)設(shè)備的數(shù)量、開發(fā)者的數(shù)量,還是是應(yīng)用程序的數(shù)量,Android均已超過iOS,可謂勢不可擋。目前絕大部分的Android應(yīng)用都運(yùn)行于手機(jī)和平板電腦等智能移動(dòng)終端上,但是Android逐漸開始被工業(yè)領(lǐng)域的一些設(shè)備所采用,開發(fā)者將面臨更加復(fù)雜的應(yīng)用環(huán)境,這要求開發(fā)者對Android系統(tǒng)有更深入的理解。本書的出版可謂恰逢其時(shí),是開發(fā)者系統(tǒng)學(xué)習(xí)Android系統(tǒng)原理的寶貴資料,也是目前唯一可參考的中文資料。不可錯(cuò)過!——AOA(傲卓網(wǎng))如果你是一位高級Android應(yīng)用開發(fā)工程師,或者是一位Android系統(tǒng)開發(fā)工程師,或者是一位Android移植工程師,再或者是一位Android應(yīng)用架構(gòu)師,本書對你來說將非常有價(jià)值。它對Android系統(tǒng)的Linux內(nèi)核層、硬件抽象層和系統(tǒng)運(yùn)行庫層的各模塊的進(jìn)行了細(xì)致入微地分析,足以幫你解決平時(shí)開發(fā)過程中遇到的與系統(tǒng)底層相關(guān)度的難題。極力推薦!——Andriod開發(fā)者社區(qū)自Android在國內(nèi)普及以來,市面上關(guān)于Android的圖書如雨后春筍般涌現(xiàn),但是大多數(shù)圖書都是引領(lǐng)讀者入門的,重在講解Android上層的框架及其使用,真正從底層去分析和闡述Android架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理的書屈指可數(shù),本書恰好是這方面的一本佳作。如果想了解Android的整體結(jié)構(gòu)和底層原理,這本書請不要錯(cuò)過!——姚尚朗(IceskYsl) eoeAndroid社區(qū)創(chuàng)始人兼CTO/暢銷書作家

編輯推薦

《Android技術(shù)內(nèi)幕:系統(tǒng)卷》編輯推薦:完全立足于Android系統(tǒng)源代碼,深入解析Android內(nèi)核的架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理,透徹分析Android內(nèi)核層、硬件抽象層和系統(tǒng)運(yùn)行庫層的各功能模塊的底層機(jī)制?!禔ndroid技術(shù)內(nèi)幕:系統(tǒng)卷》適合所有的高級Android應(yīng)用開發(fā)工程師、Android系統(tǒng)開發(fā)工程師、Android移植工程師、Android系統(tǒng)架構(gòu)師和所有對Android源碼實(shí)現(xiàn)感興趣的讀者。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    Android技術(shù)內(nèi)幕 PDF格式下載


用戶評論 (總計(jì)142條)

 
 

  •    《Android技術(shù)內(nèi)幕:系統(tǒng)卷》是國內(nèi)首本系統(tǒng)對Android的源代碼進(jìn)行深入分析的著作。全書將Android系統(tǒng)從構(gòu)架上依次分為應(yīng)用層、應(yīng)用框架層、系統(tǒng)運(yùn)行庫層、硬件抽象層和Linux內(nèi)核層等5個(gè)層次,旨在通過對Android系統(tǒng)源代碼的全面分析來幫助開發(fā)者加深對Android系統(tǒng)架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)原理的認(rèn)識,從而幫助他們解決開發(fā)中遇到的更加復(fù)雜的問題。
      全書分為兩卷,系統(tǒng)卷主要分析了Linux內(nèi)核層、硬件抽象層和系統(tǒng)運(yùn)行庫層的各個(gè)模塊的底層原理和實(shí)現(xiàn)細(xì)節(jié);應(yīng)用卷主要分析了應(yīng)用層和應(yīng)用框架層的各個(gè)模塊的底層原理和實(shí)現(xiàn)細(xì)節(jié)。
  •   上周剛剛看完了此書,說一下我的感受吧:
    首先可以看出作者分析代碼的能力很強(qiáng),這點(diǎn)毋庸置疑,而且在Android上的知識面很廣;同時(shí),作者在Android中間件方面的理解和實(shí)踐要明顯強(qiáng)于其在驅(qū)動(dòng)方面的經(jīng)驗(yàn)和理解,可惜的是本書卻用了很多筆墨在驅(qū)動(dòng)方面。先說優(yōu)點(diǎn)吧:
    1. Binder部分的Android中間件部分寫得很好,足見作者功力(但這一章的驅(qū)動(dòng)部分寫得不咋地);
    2. 電源管理一章介紹得不錯(cuò),這可能是本書在以驅(qū)動(dòng)為主的章節(jié)里說得算是價(jià)值比較高的一章;
    3. 原生庫一章我就細(xì)看了原生服務(wù)一節(jié),寫得不錯(cuò),重點(diǎn)基本都提到了;
    4. 移至層一章寫得也不錯(cuò),和韓超的那兩本書在這方面可說是一個(gè)級別;
    5. Dalvik虛擬機(jī)這一章我只是粗略看了一下,但可看出作者理解很深入,介紹得也比較清楚;
    再說一下我認(rèn)為相對薄弱的環(huán)節(jié),僅個(gè)人看法:
    1. Android的內(nèi)核機(jī)制一章及Binder的驅(qū)動(dòng)部分寫得很一般,并且有不少沒有說到點(diǎn)上,比如介紹Alarm驅(qū)動(dòng)的時(shí)候,重點(diǎn)應(yīng)該說明Alarm和RTC驅(qū)動(dòng)之間的關(guān)系,但沒有涉及;說到Binder驅(qū)動(dòng),大量篇幅是各個(gè)數(shù)據(jù)結(jié)構(gòu)的介紹,但當(dāng)談到Reader Write ioctl這個(gè)最重要的環(huán)節(jié)的時(shí)候,卻戛然而止,最關(guān)鍵的binder_ref和binder_node沒有任何涉及;很多內(nèi)容的介紹讓人感覺隔靴搔癢;其中還用了些篇幅介紹非常初級的Linux內(nèi)核知識,比如init是怎么回事兒等等,platform_device是什么,等等,這部分其實(shí)可以有一個(gè)參考文獻(xiàn),告訴讀者哪里可以獲得這方面知識就可以了,在這里說又說不清楚,沒有什么必要;該說的不說,不該說的說了一堆。
    2. 驅(qū)動(dòng)的工作原理這一部分放在本書里有點(diǎn)兒尷尬,這方面的經(jīng)典書籍太多了,再怎么寫都是拾人牙慧,且很難介紹全面。
    建議以作者的功力,完全可以針對Android本身的各個(gè)環(huán)節(jié),比如圖形系統(tǒng)等等,單獨(dú)出一些更為深入的書籍,結(jié)合代碼透徹分析,如當(dāng)年情景分析之于內(nèi)核那樣;不必追求大而全的寫法,對我們讀者可能幫助更大!
  •   適用于有一定Linux內(nèi)核開發(fā)的人。當(dāng)前很多的Android書籍都是APP開發(fā),很少涉及到底層。本書適合有志于Android底層開發(fā)的人員
  •   本書對想要理解android系統(tǒng)原理童鞋幫助很大,但是大部分都是c的實(shí)現(xiàn),如果對linux kernel與c語言不是很懂得看起來會比較吃力,還是建議根據(jù)自己的情況選擇,我比較關(guān)注與應(yīng)用卷。
  •   這本書適合Android設(shè)備開發(fā)人閱讀,本書進(jìn)述了Android源碼開發(fā)環(huán)境搭建及部分關(guān)健源碼的分析。需要有一定的C/C++功底及微機(jī)原理方面知識。這本書不適合Android 軟件開發(fā)人員。
  •   適合有內(nèi)核基礎(chǔ)的人閱讀。這種和源代碼結(jié)合的講解方式比較給力,相當(dāng)多的重要驅(qū)動(dòng)都講到了,但是在某些重要驅(qū)動(dòng)(如V4L,WIFI)方面的講解貌似不是很詳細(xì)。介紹了Android與Linux的關(guān)系,而且比較詳細(xì)地介紹了很多概念,對原Linux驅(qū)動(dòng)人員轉(zhuǎn)做Android有較大的幫助。應(yīng)該說還是一本比較難得的書。而且語言通俗易懂,行文比較口語化,讀著很舒服……
  •   很好的書,值得一看,我想可以對我理解Android系統(tǒng)內(nèi)核和架構(gòu)有一定幫助
  •   這本書采用源碼分析的方法,對于Android的HAL、Kernel和Runtime層做了很詳細(xì)的介紹。描述也很清晰易懂,值得推薦
  •   很詳細(xì)的講解了android系統(tǒng)是如何啟動(dòng)的,apk程序是如何執(zhí)行的,對于在androind系統(tǒng)上進(jìn)行系統(tǒng)開發(fā)和系統(tǒng)移植的同學(xué)會有很大幫助。
  •   算是對Android系統(tǒng)整體架構(gòu)介紹得比較深入的一本書了。
  •   這本書對android源代碼的分析非常好,適合android開發(fā)人員的研究
  •   android系統(tǒng)開發(fā)者有用的參考書,適合有一定基礎(chǔ)的工程師閱讀。
  •   剛?cè)胧?,很厚重。迫不急待地看?br /> 對于在android上進(jìn)行系統(tǒng)開發(fā)來說,絕對是入門及提高的工具書。
    楊老師的書,都能給大家。很不錯(cuò),值得信賴!
  •   這本書還算是不錯(cuò)的了,算得上是國內(nèi)剖析Android系統(tǒng)較為深入的一本書!
  •   講解Android系統(tǒng)的書籍在國內(nèi)是鳳毛麟角,這本書填補(bǔ)了這個(gè)空白。。。
  •   值得一看,從底層開始講Android系統(tǒng)。收獲不小
  •   這本書無論從基礎(chǔ)還是實(shí)際案例,都較為詳細(xì)的介紹了android,使人們從一無所知到了解,以至于能夠開發(fā)實(shí)際的應(yīng)用
  •   很快就收到貨,大概瀏覽了一下內(nèi)容,整體上看都是Android的主要核心技術(shù)方面,涉及很多底層代碼,看懂有難度哦,呵呵。
  •   這書寫的不錯(cuò),對想深入android開發(fā)的人員有比較大的幫助。
    需要一定的開發(fā)基礎(chǔ)才能更好的閱讀
  •   適合android開發(fā)人員看
  •   經(jīng)典的android開發(fā)書,很多人看過的
  •   Android Framework開發(fā)必備
  •   Android技術(shù)內(nèi)幕不錯(cuò),適合初學(xué)者。
  •   這本書 講的較為寬泛 不是特別深入 適合 只想稍微了解android的人
  •   android程序員進(jìn)階必備
  •   講解詳盡,適合初接觸android的朋友!
  •   一直想看看Android入門方面的書,這本還不錯(cuò)
  •   深入了解Android
  •   還不錯(cuò),完整看完對android會有比較深入的了解
  •   Android的入門書籍,適合新手
  •   android書中不錯(cuò)的書,值得購買
  •   講得很詳細(xì),對于想學(xué)習(xí)系統(tǒng)層的可以看看。不過對于新手不太好懂哦
  •   對系統(tǒng)開發(fā),不過對應(yīng)用開發(fā)的進(jìn)階也有非常大的幫助。深入理解系統(tǒng),應(yīng)用開發(fā)會做的更加好。
  •   這本書要結(jié)合linux內(nèi)核驅(qū)動(dòng)一起看,效果能比較好一些。關(guān)于移植,要有一定有l(wèi)inux內(nèi)核功底。
  •   很好的一本書,外面有一層薄膜包裝,很不錯(cuò)
    內(nèi)容也很好,講解很詳細(xì)
  •   內(nèi)容和結(jié)構(gòu)都不錯(cuò),適合做驅(qū)動(dòng)和系統(tǒng)移植的人看,書中內(nèi)容比其它書要新,代碼目錄基本與2.1/2.2版本對應(yīng).
  •   很適合安卓內(nèi)核開發(fā)工作者的書!
  •   對系統(tǒng)進(jìn)行了基本分析講解~~
  •   除了個(gè)別章節(jié)外,講的還是太泛,并沒有把設(shè)計(jì)架構(gòu)、思想講出來,很多難懂的東西并沒有涉及。
    代碼并不代表內(nèi)幕
  •   其他的章節(jié)先不說,就 該書的 第三章 來說:
    1.有點(diǎn)膚淺,點(diǎn)到為止,沒有從根本上講清 binder的本質(zhì)。
    2.通過情景分析的方法去寫這個(gè)部分,效果會更好。
    3.純屬個(gè)人客觀觀點(diǎn),不是有意批評,望原諒。
  •   研究嵌入式開發(fā)的買好,應(yīng)用開發(fā)的覺得沒這個(gè)必要,但要深入學(xué)習(xí)的也可以考慮。
  •   初學(xué)者,源代碼分析非常徹底。很好。值得買
  •   如果只是應(yīng)用開發(fā),這本書幫助不大,但是如果你想知道應(yīng)用的背后,這本書不得不看。
  •   如果要?jiǎng)右恍┑讓拥拈_發(fā),這本書絕對是不二的選擇,雖然有的內(nèi)容我也沒有細(xì)看,因?yàn)闀簳r(shí)用不到
  •   對沒太多底層開發(fā)的人來說,讀起來有一定難度。
  •   對開發(fā)ndk和平臺移植 都應(yīng)該有幫助的一本書。
  •   這幾天忘記評了,這本書很不錯(cuò),講得很深,適合想探索安卓系統(tǒng)的朋友們
  •   講解非常詳細(xì),值得一看,最近正在研究安卓內(nèi)核啊,哈哈
  •   最近對安卓有興趣,也買了安卓系統(tǒng)的手機(jī),研究中。
  •   真正是從系統(tǒng)內(nèi)部講起的,知其然更要知其所以然
  •   很系統(tǒng),系統(tǒng)部分??!
  •   該書內(nèi)容比較詳細(xì),缺點(diǎn):代碼講得太多,分析的邏輯有點(diǎn)亂,沒有重點(diǎn),優(yōu)點(diǎn):對源碼分析詳盡,能讓人很快學(xué)到核心知識,真正是一本值得一讀的好書。
  •   想深入了解手機(jī)開發(fā)的都看看吧
  •   應(yīng)該還不錯(cuò),適合非安卓開發(fā)的it人士學(xué)習(xí)
  •   謝謝,不過看這個(gè)書要有一點(diǎn)硬件編程知識
  •   其余基本什么時(shí)候有買???? 比如應(yīng)用卷等 希望當(dāng)當(dāng)早點(diǎn)有貨 我想買其余的
  •   強(qiáng)烈期待應(yīng)用卷
  •   書寫的還行,對源碼的涉及比較多,但是講解往往是點(diǎn)到為止,并沒有很深入,也許是篇幅決定的
  •   對于沒接觸過linux的新手來說,這本書是最好的了
  •   非常不錯(cuò),受益匪淺。 驅(qū)動(dòng)部分講得再深入一些就更好了。
  •   看了一章,介紹的很不錯(cuò)。不是胡亂的黏貼代碼。很好
  •   網(wǎng)上底層的資料很少,這個(gè)推薦看看
  •   寫得很好的一本書, 需要有l(wèi)inux基礎(chǔ)的人看。
  •   剛看了點(diǎn)第一章,還算不錯(cuò), 圖文并茂,講的還算明白
  •   書寫的不錯(cuò),但很底層??雌饋碛悬c(diǎn)費(fèi)勁,有些基礎(chǔ)后看比較好。
  •   內(nèi)容詳實(shí),分析到位,操作性強(qiáng)
  •   能容比較充實(shí),適合靜心閱讀。想速成的還是算了。
  •   這是好書,期待其他卷出版。
  •   這本書對于技術(shù)人員來說是很有用的!講述很全面,很詳細(xì)。
  •   楊老師的書寫得很不錯(cuò),至少在國內(nèi)計(jì)算機(jī)作者當(dāng)中是鶴立雞群的啦
  •   給老公買的,希望對他技術(shù)提高有幫助。感謝作者。
  •   書是不錯(cuò),適合比較深入了解,不適合新手!
  •   家里那位搞技術(shù)的,研發(fā)學(xué)習(xí)用的,應(yīng)該不錯(cuò)。
  •   唯一缺點(diǎn)就是環(huán)境的安裝網(wǎng)站已經(jīng)過期
  •   絕對的專家級別的巨作,只是不太適合初學(xué)者,但是對于有一定工作經(jīng)驗(yàn)的來說會是非常不錯(cuò)的選擇
  •   送貨很快,是一本使人受益的技術(shù)參考書籍。
  •   書很不錯(cuò),不過目前本人能力有限,暫時(shí)還不太適合看這本書,等著基礎(chǔ)牢固一點(diǎn)再說吧
  •   相當(dāng)不錯(cuò),定心看看,深入理解
  •   很不錯(cuò), 很深入的一本書, 給個(gè)好評!
  •   介紹挺細(xì)致,適合入門。
  •   很詳細(xì),很深入!
  •   內(nèi)容充實(shí),實(shí)例具體!很全面
  •   看了介紹還不錯(cuò)。對安卓有幫助。
  •   介紹比較全面, 雖然不是很詳細(xì)..整體很不錯(cuò)
  •   公司里的好多同事都用這本書,大俠們也極力推薦,我現(xiàn)在還只是一個(gè)小蝦米,努力學(xué)習(xí)啦~
  •   講解的很好,可惜自己的基礎(chǔ)太差了,慢慢惡補(bǔ)
  •   講解得比較粗,但是可以有有效的指導(dǎo)作用
  •   書到了,大概看了一下,還是覺得挺不錯(cuò)的,接下來的工作要開始跟這方面相關(guān)的了,加油
  •   這本書非常好,推薦大家買!
  •   今天收到,看目錄應(yīng)該挺不錯(cuò)一本書,具體的需要慢慢看才知道。
  •   此書真的很霸氣,誰看誰知道。玩過安卓的機(jī)友們,都該懂的。
  •   難度比較大, 不太適合剛?cè)腴T的新手
  •   看評論普遍很好,買了1本后。
    讀來甚感無趣,行文像說明書一般平淡,
    沒有像1本好的計(jì)算機(jī)教程那種
    深入淺出,讀來恍然大悟的感覺。
  •   很厚重的一本書,希望可以指引迷途。開始慢慢學(xué)習(xí)
  •   對內(nèi)核介紹詳盡,很好
  •   工具書和學(xué)習(xí)書,老公用來學(xué)習(xí)之用的,每天的案頭書
  •   買來學(xué)習(xí)知識挺好的
  •   還正在學(xué)習(xí)中!
  •   書感覺很重應(yīng)該是正品,內(nèi)容還沒有細(xì)看,等看后再做評價(jià)
  •   書很不錯(cuò),就是內(nèi)容有些難啊
 

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

京ICP備13047387號-7