內容介紹
基本信息
| 書名: | Android係統軟件開發(底層) |
| 作者: | 夏德洲 | 開本: | |
| YJ: | 32 | 頁數: | |
| 現價: | 見1;CY=CY部 | 齣版時間 | 2015-10 |
| 書號: | 9787113207182 | 印刷時間: | |
| 齣版社: | 中國鐵道齣版社 | 版次: | |
| 商品類型: | 正版圖書 | 印次: | |
內容提要 作者簡介 精彩導讀 目錄 D1章 概述
1.1 Android操作係統介紹
1.2 Android軟件架構介紹
1.3 Android子係統介紹
1.4 Android應用程序開發過程
小結
習題
D2章 Android源碼開發環境搭建
2.1 搭建主機虛擬機環境
2.1.1 vMwareWorkstation介紹
2.1.2 安裝vMwareWorkstation虛擬機軟件
2.1.3 安裝ubuntu操作係統
2.1.4 VMware網絡配置
2.1.5 vMware與主機數據共享
2.1.6 VMware添加新硬件
2.2 搭建Linux編譯環境
2.2.1 建立ubuntu編譯環境
2.2.2 JDK安裝
2.2.3 安裝Android編譯工具
2.2.4 下載Android源碼
2.2.5 下載Linux內核源碼
2.3 編譯Android源碼
2.3.1 Android源碼目錄結構
2.3.2 編譯Android
2.3.3 編譯nux內核
2.4 搭建AndroidSDK開發環境
2.4.1 下載、安裝Eclipse
2.4.2 安裝ADT插件
2.4.3 下載、配置AndroidSDK工具包
2.4.4 下載AndroidSDK平颱
2.4.5 通過AndroidSDK.Manager創建模擬器
2.4.6 應用程序Framework源碼級調試
2.5 定製Android模擬器
2.6 實訓:Android4.0開發環境搭建及源碼編譯
小結
習題
D3章 Android係統的啓動
3.1 Androidinit進程啓動
3.2 Android本地守護進程
3.2.1 ueventd進程
3.2.2 adbd進程
3.2.3 servicemanager進程
3.2.4 vold進程
3.2.5 ril—daemon進程
3.2.6 Sillfaceflinger進程
3.3 zygote守護進程與system—setver進程
3.3.1 zygote守護進程的啓動
3.3.2 zygoteInit類的功能與system—sei.ver進程的創建
3.3.3 system—serve進程的運行
3.3.4 HOME桌麵的啓動
3.4 實訓:通過Init肌腳本開機啓動Android應用程序
小結
習題
D4章 Android編譯係統與定製Android平颱係統
4.1 Andloid編譯係統
4.1.1 Android編譯係統介紹
4.1.2 Android.mk文件
4.2 實訓:編譯HelloWorld應用程序
4.3 定製Android平颱係統
4.3.1 添加新産品編譯項
4.3.2 定製産品的意義及定製要點
4.4 實訓:定製開機界麵
4.5 實訓:定製開機文字
4.6 實訓:定製係統開機動畫
小結
習題
D5章 JNI機製
5.1 JM概述
5.2 JNI原理
5.3 JNI中的數據傳遞
5.3.1 JNI基本類型
5.3.2 JNI引用類型
5.4.Java訪問本地方法
5.5 JNI訪問Java成員
5.5.1 取得Java屬性ID和方法ID
5.5.2 JNI類型簽名
5.5.3 JNI操作Java屬性和方法
5.5.4 在本地代碼中創建Java對象
5.5.5 Java數組在本地代碼中的處理
5.6 局部引用與全局引用
5.6.1 局部引用
5.6.2 全局引用
5.6.3 在Java環境中保存JNI對象
5.7 本地方法的注冊
5.7.1 JNI—OnLoad方法
5.7.2 RegisterNatives方法
5.8 實訓:JNI調用實訓
小結
習題
D6章 Android的對象管理
6.1 智能指針
6.2 輕量級指針
6.3 RefBase類
6.4 弱引用指針wp
6.5 智能指針的示例
小結
習題
D7章 Binder通信
7.1 Android進程空間與Binder機製
7.1.1 Android的Binder機製
7.1.2 麵嚮對象的:BinderIPC
7.2 Binder框架分析
7.2.1 BindelDriver
7.2.2 OpenBinderDriver
7.2.3 SeiviceManager與實名Binder
7.3 AndroidBinder協議
7.3.1 BINDER—wRITE—READ之寫操作
7.3.2 BINDER—wRITE—READ之從Binder.讀齣數據
7.3.3 structbinder—transaction—data收發數據包結構
小結
習題
D8章 Android HAL硬件抽象層
8.1 AndroidHAL介紹
8.1.1 HAL存在的原因
8.1.2 Module架構
8.1.3 新的HAL架構
8.2 HALStub構架
8.2.1 HALStub框架分析
8.2.2 HALStub注冊
8.2.3 HALstub操作
8.3 LedHAL實例
8.3.1 LedHAL框架
8.3.2 LEDHAL代碼架構
8.3.3 LEDDemo代碼分析
8.3.4 LedService代碼分析
8.3.5 Led本地服務代碼分析
8.3.6 L,EDHAL深入理解
8.4 實訓:基於Android4.0平闆的LED燈控製
小結
習題
D9章 HAL硬件抽象層進階Sensor HAL實例
9.1 AndroidSensor架構
9.1.1 AndroidSensor框架
9.1.2 AndroidSensor工作流程
9.2 SensorHAL應用程序
9.2.1 SensorHAL應用程序
9.2.2 AndroidManager機製
9.2.3 獲得Sensor係統服務
9.3 SensorManager
9.3.1 本地SensorManagm.創建
9.3.2 獲得SensorSmvice服務
9.3.3 獲得SensorService監聽及事件捕獲
9.3.4 本地封裝類Sensm—Device
9.4 SensorHAL迴顧
9.5 實訓:SensorDemo的編譯
小結
習題
暫時沒有目錄,請見諒!
《Android係統軟件開發(底層)》圖書簡介 一、 深入探索Android的靈魂:從零構建可信賴的係統 Android,這個我們日常生活中不可或缺的智能操作係統,其背後蘊藏著一個龐大而精密的軟件體係。當我們將目光從應用層的絢麗界麵移開,轉嚮支撐這一切的堅實根基時,一個由C/C++、Java、Linux內核以及各種中間層服務構成的復雜世界便徐徐展開。《Android係統軟件開發(底層)》正是為你揭開這個神秘麵紗的鑰匙。本書並非泛泛而談,而是專注於Android係統的“底層”——即那些構成操作係統骨架、決定其核心功能和性能的關鍵組件。 如果你是一位渴望理解Android究竟是如何工作的開發者,如果你想探究應用是如何被啓動、如何與硬件交互、如何在多任務環境下流暢運行,或者你對構建安全、穩定、高效的Android係統抱有濃厚興趣,那麼這本書將是你不可或缺的案頭之作。我們將帶領你循序漸進,從最基礎的Linux內核特性入手,逐步深入Android的特有架構,直至理解那些驅動整個係統運轉的底層機製。 二、 核心內容深度剖析:層層遞進,掌握Android架構精髓 本書的編寫旨在提供一個係統、深入且實用的Android底層開發指南。我們摒棄瞭碎片化的知識點羅列,而是以邏輯嚴謹的章節劃分,構建瞭一個完整的學習路徑。 第一部分:Linux內核與Android的淵源 Android係統建立在強大的Linux內核之上,理解Linux內核對於掌握Android底層至關重要。這一部分,我們將首先為你梳理Linux內核在Android中的定位與作用。這包括: Linux內核基礎: 介紹Linux內核的基本概念,如進程管理、內存管理、中斷處理、文件係統等,並重點講解與Android係統相關的內核模塊。 Android內核驅動: 深入探討Android特有的內核驅動,例如Binder IPC機製的核心原理,它如何實現跨進程通信,以及其在Android係統中的重要性。還會涉及電源管理、低功耗設計相關的內核接口,為理解設備續航提供基礎。 Android的內存管理策略: 分析Android係統如何利用Linux內核的內存管理機製,並結閤自身的特性(如Zygote進程、內存迴收等)來優化內存使用,確保設備流暢運行。 第二部分:Android運行時環境與核心服務 在Linux內核之上,Android構建瞭一套獨特的運行時環境和一係列核心服務,這些構成瞭Android係統的“心髒”。 ART(Android Runtime)解析: 詳細剖析Android的運行時環境ART,包括其編譯模式(AOT/JIT)、對象模型、垃圾迴收機製等。理解ART是理解Java/Kotlin應用如何在Android上執行的關鍵。 Zygote進程的奧秘: 深入研究Zygote進程,它是Android係統啓動和應用創建的基石。我們將解釋Zygote如何預加載核心類,以及fork機製如何高效地啓動新應用。 Binder IPC機製詳解: Binder是Android中最核心的IPC(進程間通信)機製。本書將對其進行深度剖析,包括Binder驅動、Binder服務器、Binder客戶端的工作流程,以及如何在底層實現各種係統服務的跨進程調用。 Android核心服務的實現: 聚焦於幾個關鍵的係統服務,如ActivityManagerService (AMS)、WindowManagerService (WMS)、PackageManagerService (PMS) 等。我們將揭示它們的內部工作原理,理解它們如何管理應用生命周期、窗口顯示、包管理等核心功能。 Android的係統服務框架: 講解Android如何通過Service Manager統一管理和分發係統服務,以及客戶端如何通過Binder與這些服務進行交互。 第三部分:硬件抽象層(HAL)與驅動開發 硬件抽象層(HAL)是Android係統實現跨硬件平颱兼容性的關鍵。這一部分將帶你深入瞭解HAL的設計理念和開發實踐。 HAL的設計哲學與結構: 介紹HAL的層次化設計,以及它如何將上層Java框架與底層C/C++驅動隔離開。 HAL接口的實現: 講解如何實現HAL接口,包括在用戶空間編寫C/C++庫,以及如何將其暴露給上層框架。 常見HAL模塊分析: 以相機、音頻、傳感器等常見硬件模塊為例,分析其HAL接口的設計和具體實現。 內核驅動與HAL的協同: 探討內核驅動如何為HAL提供底層支持,以及HAL如何調用這些驅動來實現硬件功能。 第四部分:係統啓動流程與安全機製 理解Android係統的啓動過程和安全策略,是掌握係統穩定性的重要環節。 Android啓動流程全麵解讀: 從Bootloader、Kernel、init進程,到Zygote、System Server,我們將細緻地解析Android係統的完整啓動流程,讓你清晰地看到係統是如何一步步“蘇醒”的。 init進程的角色與腳本: 深入分析init進程的作用,以及其解析的rc腳本如何控製係統服務的啓動和管理。 Android安全模型: 講解Android的沙箱機製、權限管理、SELinux等核心安全特性,理解係統如何保障用戶數據和應用安全。 Android的組件化與模塊化: 分析Android係統中各組件(如HAL、System Services、Framework Components)的劃分和協作方式,理解其高度模塊化的設計優勢。 第五部分:構建與定製Android係統 本書的最終目標是賦能讀者動手實踐,理解如何構建和定製Android係統。 Android編譯係統(Soong & Make): 介紹Android的強大編譯係統,包括Soong、Blueprint和Make文件的作用,以及如何配置和編譯整個Android係統。 Rooting與係統修改: 在理解瞭底層機製後,我們將探討Rooting的原理,以及如何在符閤法律和道德規範的前提下,對係統進行一些基礎的修改和定製,例如修改係統屬性、替換係統組件等(強調風險與責任)。 性能調優與問題排查: 提供一些實用的性能分析工具和方法,幫助讀者識彆係統瓶頸,並進行相應的優化。同時,介紹一些常用的調試和日誌分析技巧,用於解決底層開發中遇到的疑難雜癥。 三、 目標讀者與學習收益:賦能開發者,掌控Android底層 目標讀者: 有一定C/C++和Java/Kotlin基礎的Android應用開發者: 渴望深入理解Android係統內部機製,提升應用性能,解決疑難Bug,甚至進行Framework層修改。 嵌入式Linux開發者: 希望將Linux開發經驗遷移到Android平颱,理解Android特有的軟件棧。 操作係統原理的愛好者: 希望通過一個實際的、廣泛使用的操作係統,深入理解操作係統的工作原理。 對Android係統底層感興趣的學生與研究人員: 希望係統性地學習Android底層架構,為未來的研究或工作打下堅實基礎。 學習收益: 建立係統性的Android底層知識體係: 從Linux內核到ART運行時,從HAL到係統服務,全麵掌握Android係統的分層架構和核心組件。 深入理解應用與係統的交互: 明白你的應用是如何被創建、管理、執行,以及如何與硬件進行通信的。 掌握Android核心IPC機製(Binder)的原理和應用: 能夠理解和分析基於Binder的跨進程通信。 具備分析和定位底層係統問題的能力: 學習使用專業的工具和方法,解決在Android底層開發中遇到的挑戰。 瞭解Android的編譯與定製流程: 為進一步參與Android開源項目或進行設備定製提供理論和實踐指導。 提升開發效率與應用性能: 理解底層機製有助於寫齣更高效、更穩定的Android應用。 為未來更高級的Android開發(如ROM開發、驅動開發)打下堅實基礎。 四、 學習體驗與風格:深入淺齣,實踐為王 本書在編寫上力求做到深入淺齣,詳略得當。我們不會迴避復雜的技術細節,但會通過清晰的圖示、精煉的代碼示例和詳實的文字描述,將復雜的概念娓娓道來。每一章節都緊密圍繞Android的實際運行機製展開,理論與實踐相結閤。 注重細節: 對關鍵的API、係統服務、內核接口,都會進行詳細的解析,包括其設計意圖、實現邏輯和使用方法。 代碼驅動: 穿插大量精選的Android AOSP(Android Open Source Project)源碼片段,讓你能夠直接看到原理在代碼中的體現。 案例分析: 通過實際的係統調用、服務交互流程等案例,幫助你理解不同組件之間的協作關係。 循序漸進: 采用由淺入深的學習路綫,確保即便是初次接觸Android底層開發的讀者,也能逐步建立起完整的知識體係。 《Android係統軟件開發(底層)》不僅僅是一本技術書籍,更是一次對Android操作係統靈魂的深度探索之旅。無論你是想成為一名頂尖的應用開發者,還是希望深入理解和改造Android係統,這本書都將是你開啓這段旅程的最佳起點。準備好,讓我們一起揭開Android的神秘麵紗,掌握這個強大操作係統的核心力量!