深入淺出Android源代碼:基於Android 6.0和實際開發案例剖析 深入浅出Android源代码:基于Android 6.0和实际开发案例剖析

何軍

  • 出版商: 電子工業
  • 出版日期: 2017-05-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • 頁數: 530
  • 裝訂: 平裝
  • ISBN: 7121304872
  • ISBN-13: 9787121304873
  • 相關分類: Android
  • 已絕版

買這商品的人也買了...

商品描述

本書基於Android 6.0源代碼和實際案例,分析Android系統的框架原理和具體實現。由於Android框架里模塊眾多,本書只詳細分析了框架里的一部分模塊,涉及這些模塊的原理、架構及代碼實現等各個細節,盡量做到讓讀者知其然,又知其所以然。在Android官方網站,Android分了4層,從高到低分別是應用程序層、應用程序框架層、系統庫層和Linux內核層。本書主要涉及應用程序層、應用程序框架層和系統庫層。

目錄大綱

第一部分Android基礎篇

第1章Android簡介2 
1.1 Android簡介2 
1.2閱讀Android源代碼6 

第2章Android基礎類10 
2.1 Android基礎類簡介10 
2.2 Thread類原理11 
2.3 Mutex與Condition 20 
2.3.1 Mutex(AutoMutex )分析20 
2.3.2 Condition代碼分析24 
2.4 Android系統智能指針30 
2.4.1輕量級指針(lp) 30 
2.4.2強指針(sp) 32 

第3章Android上下文環境Context 37 
3.1 Context簡介37 
3.2 Application運行上下文環境Context的創建過程40 
3.2.1創建Application Context 41 
3.2.2獲得Application Context 47 
3.3 Activity運行上下文環境Context的創建過程48 
3.4 Service運行上下文環境Context的創建過程55 

第4章Android消息機制59 
4.1 Android消息機制原理59 
4.2創建消息隊列和進入消息循環過程61 
4.3消息的發送過程70 
4.4消息的處理過程75 

第二部分Android框架篇

第5章Android Init進程78 
5.1 Android Init進程簡介78 
5.2 klog_init()函數83 
5.3 process_kernel_cmdline()函數85 
5.4 signal_handler_init ()函數86 
5.5 property_load_boot_defaults()函數89 
5.6屬性服務90 
5.6.1屬性服務的初始化與啟動90 
5.6.2屬性的設置91 
5.6.3屬性值的獲取95 
5.7解析init.rc配置文件和啟動service進程96 
5.7.1 init.rc文件基礎介紹96 
5.7.2解析init.rc文件100 
5.7.3啟動service進程104 

第6章開機動畫bootanimation 108 
6.1開機動畫bootanimation原理108 
6.2開機動畫bootanimation的顯示過程111 
6.3開機動畫bootanimation的退出過程127 

第7章Zygote進程135 
7.1 Zygote進程基礎介紹135 
7.2 Zygote進程的啟動139 
7.2.1調用startVM()函數啟動虛擬機143 
7.2.2調用startReg()函數註冊JNI方法143 
7.2. 3調用ZygoteInit類的main()方法145 
7.3啟動system_server進程150 
7.4啟動APP應用程序進程155 

第8章SystemServer進程161 
8.1 SystemServer系統服務161 
8.2 SystemServer創建框架核心服務165 

第9章Android系統的開機與關機175 
9.1 Android系統的開機175 
9.2 Android系統的關機185 
9.3案例分析197 
9.3.1 Android系統開機時間標誌197 
9.3.2 Android系統關機時間標誌198 

第10章Android系統異常問題199 
10.1 addr2line工具199 
10.2 Android Watchdog 207 
10.3 Android系統異常問題217 
10.3.1 Android死機218 
10.3.2 Android系統重啟220 
10.3.3 Android系統啟動異常233 

第11章ActivityManagerService 236 
11.1 ActivityManagerService簡介236 
11.2 Activity的啟動過程240 
11.2.1 Launcher Activity的onPause()過程241 
11.2.2 Launcher Activity的onStop()過程261 
11.2. 3新Activity的onCreate()、onStart()和onResume()過程264 
11.3 Service的啟動過程273 
11.4 Broadcast 280 
11.4.1廣播的註冊過程282 
11.4.2廣播的發送過程290 
11.4.3廣播的處理過程295 
11.5進程內存管理303 
11.6案例分析320 
11.6.1與Activity有關的例子320 
11.6.2與BroadCast有關的例子323 
11.6.3與進程內存有關的例子329 

第12章Android國際化331 
12.1 CTS與GTS 331 
12.2全球緊急電話策略337 
12.3 Android多語言345 

第三部分Android ROM UI篇

第13章Android資源管理系統354 
13.1資源管理簡介354 
13.2資源初始化過程361 
13.2.1 AssetManager的構造方法369 
13.2.2 AssetManager.java的addAssetPath()方法374 
13.2.3 Resources的構造方法375 
13.3資源查找、解析、創建View過程378 
13.3.1查找資源ID對應的不是文件的過程380 
13.3.2查找資源ID對應的是文件的過程382 
13.4主題換膚實現396 

第14章Android View系統411 
14.1 View系統簡介411 
14.2應用程序Activity的創建412 
14.3 Activity窗口對象PhoneWindow的創建424 
14.4 Activity根視圖對象DecorView的創建432 
14.5 ViewRootImpl的創建和添加DecorView對象440 
14.6 View的measure、layout和draw過程453 
14.6.1 View的measure過程462 
14.6.2 View的layout過程473 
14.6.3 View的draw過程478 
14.7 View事件分發493 
14.8案例分析503 

第15章Android控件512 
15.1 Android系統控件分析512 
15.1.1系統控件簡介512 
15.1.2系統控件TextView的屬性514 
15.1.3系統控件TextView的onMeasure() 517 
15. 1.4系統控件TextView的onLayout() 523 
15.1.5系統控件TextView的onDraw() 523 
15.2自定義控件524 
15.2.1定義自定義控件屬性525 
15.2.2實現自定義控件525 
15.2.3使用自定義控件527 
15.3 Android控件案例分析527