-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

深入剖析Android新特性

( 簡體 字)
作者:強波類別:1. -> 程式設計 -> 手機程式 -> Android
譯者:
出版社:電子工業出版社深入剖析Android新特性 3dWoo書號: 49042
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:4/1/2018
頁數:444
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121339332
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

本書介紹
本書的書名是《深入剖析Android新特性》。“新”和“舊”是相對的,這樣的詞是有時效性的,今天新的東西,很快就不新了,本書介紹的是Android系統5.0至8.0的新增特性。
Android作為一個跨越了多種設備的軟件平臺,由于各家廠商對于設備支持的速度不一,市場上的碎片化現象很嚴重。在Android 7.0、8.0推出的時候,很多用戶可能還在使用4.4甚至更早的版本。而Android的新版本從推出到最終真正普及,需要一個較長的過渡時期。
這個現象對開發來說既有好處也有壞處。好處是開發者有足夠多的時間為新版本的功能和特性做準備,壞處是開發者在開發應用時需要兼顧太多的版本。
本書在Android 8.0推出不久后上市,就是希望能給開發者們對近幾年Android的新特性做一個梳理。因為筆者覺得,隨著時間的推移,以及Android新版本的逐步普及,這些內容是開發者在最近幾年正好需要的。
另外,這不是一本僅僅告訴讀者Android SDK中的API如何使用的書。在本書中,我們會花更多的精力在這些特性的內部實現上,通過解析AOSP的源碼,讓讀者不僅知其然,也知其所以然。
Android是一個開源的操作系統,任何人都可以獲取和閱讀其源碼。筆者認為,閱讀Android源碼有如下好處:
? 加深對Android系統的理解;
? 對Android SDK提供的API有更深入的理解;
? 提升自己的設計和架構水平;
? 在應對一些Android定制版本上的特有問題時,能夠明白背后可能發生了什么。
合適的讀者
本書適合以下讀者群:
? Android應用程序開發者;
? Android系統工程師;
? 對Android系統內部實現感興趣的讀者;
? 對Android系統最新功能感興趣的讀者。
本書會包含什么
本書會在AOSP源碼的基礎上講解Android系統的新增特性,主要集中在5.0∼8.0版本。本書首先會對Android系統做一個整體的介紹,并對最關鍵的知識做一些說明。之后,會將大部分精力集中在講解Android系統5.0至8.0的新增特性上。
在講解這些特性的時候,我們會結合AOSP的源碼,盡可能深入到系統的內部實現中,讓讀者不僅知其然,也知其所以然。
任何一本書的內容都凝聚了很多人的經驗,本書在寫作過程中也參考了很多的資料,為了對這些資料的原作者表示尊重,也為了讓讀者可以在更大的范圍內去進行探索和學習,在每個章節的結尾,都盡可能會包含“參考資料與推薦讀物”,這些內容是筆者在寫作過程中參考的資料,或者是筆者認為對讀者有幫助的信息。
任何操作系統的實現都是一個極其龐大的工程,Android系統尤其如此。因此,任何一本書都不可能窮其所有細節,本書自然也不例外。就連5.0至8.0的新增功能中,我們也只能介紹其鳳毛麟角。
但本書最大的目的在于:希望通過對新增功能的解析,讓讀者掌握Android的系統架構模型,以及閱讀AOSP源碼的能力,并最終具有能夠自行研究Android系統的能力。
“授人以魚不如授人以漁”,任何已有的功能都是固定的,隨著行業的發展,Android系統在未來可能加入的功能是不確定的,只有掌握了自己閱讀和分析Android源碼的能力,才能應對不確定的變化。
本書不會包含什么
下面這些內容,由于它們本身都是非常大的話題,可以單獨寫成一本書(甚至幾本書),因此這些內容在本書中不會講解。
? 任何編程語言方面的知識;
? Linux/UNIX系統開發知識;
? Linux內核開發知識;
? 瀏覽器內核開發知識(Webkit、Chromium);
? Android App基礎開發知識。
閱讀本書,你不必懂Linux內核、瀏覽器的相關知識。但本書期待讀者擁有C/C++、Java語言代碼的閱讀能力,熟悉Linux環境,并有基本的Android App開發知識。否則,你可能要選擇其他書來做一些準備了。
為什么要寫這本書
是的,市面上已經有太多的Android書籍了,為什么還需要這一本呢?在我決定寫這本書之前,我也這樣問自己。
本書的編輯陳曉猛先生最初與我聯系的時候,是因為看到了我的個人博客。這是在我的博客上線僅僅三個月不到的時候。
說實話,因為我本身工作很忙,寫博客都要使勁才能擠出時間,所以就更加沒有時間去推廣。我寫博客的目的僅僅是為了自己積累一些東西。當然也希望我所記錄下來的東西,能對別人有幫助。
在陳曉猛先生與我聯系之前,我并沒有想過自己會出一本書。但在看到他的留言之后,我便在想,如果我整理出來的知識能夠讓更多的人看到,能夠對更多的人產生幫助,那不是很好嗎?于是我便嘗試給他回了郵件。
出于以下理由,讓我決定寫這本書:
? Android平臺擁有非常多的開發者,開發者們需要更多的資料;
? AOSP的源碼是完全開放的,但卻缺少內部實現的設計文檔和說明資料;
? 目前已有的書籍大部分是針對Android 4.4前后的版本,需要有一本書針對新版本做一些整理;
? 每個人看問題和分析問題的方式不一樣,給更多的人分享自己的經驗是很有意義的;
? 作為一個操作系統工程師,對于同行的分析和研究也是我的工作內容之一。
“術業有專攻,聞道有先后”,做技術的過程本身就是一個互相學習和互相交流的過程。
由于筆者水平有限,文中若有錯漏之處,也希望讀者不吝賜教。
我的郵箱:paulquei@gmail.com。
我的個人主頁:http://qiangbo.space。
本書的主要結構
本書包含的章節及每一章的內容介紹如下。
? 第1章:介紹Android系統的整體架構,并講解如何獲取AOSP源碼,以及自己動手編譯出可以運行的Android系統。
? 第2章:講解Android系統中的進程管理,包括進程的創建、優先級管理,以及系統對于內存的管理。
? 第3章:講解Android系統中的虛擬機,包括Dalvik虛擬機、ART虛擬機。
? 第4章:講解Android系統上用戶界面的改進,包括多窗口功能和App Shortcts。
? 第5章:講解Android系統上的SystemUI改進,包括System Bar、Notification,以及Quick Settings。
? 第6章:講解Android系統上功耗方面的改進,包括Project Volta、Doze模式與App StandBy。
? 第7章:講解Android系統上設備管理方面的改進,包括對于多用戶的支持和面向企業環境的Android。
? 第8章:講解Android系統安全方面的改進。
? 第9章:講解Android系統在圖形方面的改進,包括整個架構、主要組件,以及Project Butter等知識。
? 第10章:講解Android O系統架構的改進—Project Treble。
致謝
這本書得以出版,我第一個要感謝的是南京富士通南大軟件技術有限公司的朱清森部長。他曾是我的領導,正是他的引導,我才第一次嘗試寫作并投稿給IBM DeveloperWorks站點(https://www.ibm.com/developerworks/cn/java/j-lo-asm/),之后才有了我寫的其他文章,以及我的個人博客,當然還有這本書。
第二個要感謝的是博文視點的編輯陳曉猛先生,是他的鼓勵和辛苦編輯才使本書得以面世。最后要感謝的是我在AliOS的同事和領導,從這群優秀的工程師身上我學到太多太多。在我寫作本書的期間內,也得到了他們的很多幫助。

強波
2018年3月于杭州
內容簡介:

本書對最近幾個版本(5.0 ~ 8.0)的主要新增功能進行整理和解析,本書的重點不僅僅是講解這些新增功能特性的外部行為,而是在結合AOSP的源碼基礎上,解析這些功能特性的內部實現。 任何已有的功能都是固定的,隨著行業的發展,Android系統在未來可能加入的功能是不確定的,只有掌握了閱讀和分析AOSP源碼的能力,才能應對不確定的變化,并具備今后能夠自行研究Android系統的能力。

目錄:

第1章 預備知識 1
1.1 Android系統架構 1
1.2 關于AOSP 3
1.3 理解Android Binder機制 3
1.3.1 Binder機制簡介 3
1.3.2 整體架構 4
1.3.3 驅動層 7
1.3.4 Binder Framework C++部分 26
1.3.5 Binder Framework Java部分 54
1.3.6 參考資料與推薦讀物 70
第2章 Android系統中的進程管理 72
2.1 關于進程 72
2.2 系統進程與應用進程 73
2.2.1 init進程與init語言 75
2.2.2 Zygote進程 81
2.2.3 system_server進程 84
2.3 應用進程的創建 87
2.3.1 關于應用組件 87
2.3.2 進程與線程 88
2.3.3 ActivityManagerService 89
2.3.4 Activity與進程創建 92
2.3.5 Service與進程創建 94
2.3.6 ContentProvider與進程創建 96
2.3.7 BroadcastReceiver與進程創建 97
2.3.8 參考資料與推薦讀物 99
2.4 進程的優先級管理 100
2.4.1 優先級的依據 100
2.4.2 優先級的基礎 102
2.4.3 優先級的更新 105
2.4.4 優先級的算法 108
2.4.5 優先級的生效 119
2.4.6 結束語 119
2.4.7 參考資料與推薦讀物 120
2.5 進程與內存的回收 120
2.5.1 開發者API 121
2.5.2 虛擬機的垃圾回收 122
2.5.3 開發者的內存回收 122
2.5.4 Linux OOM Killer 123
2.5.5 LowMemoryKiller 125
2.5.6 進程的死亡處理 126
2.5.7 參考資料與推薦讀物 127
2.6 結束語 127
第3章 Android系統上的虛擬機 129
3.1 Java語言與Java虛擬機 130
3.1.1 Java語言 130
3.1.2 Java虛擬機 130
3.1.3 Java虛擬機實現架構 130
3.1.4 類加載器(Class loader) 132
3.1.5 垃圾回收 132
3.1.6 結束語 135
3.1.7 參考資料與推薦讀物 135
3.2 Dalvik虛擬機 135
3.2.1 Stack-based VS. Register-based 136
3.2.2 Dalvik Executable(dex)文件 137
3.2.3 Dalvik指令 139
3.2.4 Dalvik啟動過程 144
3.2.5 程序的執行:解釋與編譯 153
3.2.6 Dalvik上的垃圾回收 156
3.2.7 參考資料與推薦讀物 159
3.3 Android Runtime(ART) 159
3.3.1 ART VS.Dalvik 159
3.3.2 OAT文件格式 162
3.3.3 boot.oat與boot.art 165
3.3.4 Dalvik到ART的切換 166
3.3.5 ART虛擬機的啟動過程 169
3.3.6 內存分配 173
3.3.7 垃圾回收 178
3.3.8 JIT的回歸 182
3.3.9 ART虛擬機的演進與配置 185
3.3.10 參考資料與推薦讀物 186
第4章 用戶界面改進 187
4.1 多窗口功能 187
4.1.1 概述 188
4.1.2 開發者相關 189
4.1.3 內部實現 191
4.1.4 參考資料與推薦讀物 205
4.2 App Shortcuts 206
4.2.1 開發者API 206
4.2.2 內部實現 209
第5章 系統界面改進 215
5.1 SystemUI整體介紹 215
5.1.1 SystemUI簡介 215
5.1.2 SystemUI的初始化 216
5.1.3 System Bar的初始化 221
5.1.4 參考資料與推薦讀物 224
5.2 System Bar 224
5.3 Notification 234
5.3.1 開發者API 234
5.3.2 通知欄與通知窗口 240
5.3.3 Notification從發送到顯示 243
5.4 Quick Settings 256
5.4.1 開發者API 256
5.4.2 系統實現 260
5.4.3 參考資料與推薦讀物 265
第6章 功耗的改進 266
6.1 Project Volta 266
6.1.1 JobScheduler API 267
6.1.2 電量消耗分析工具 277
6.1.3 在虛擬機層面減少電池消耗 279
6.1.4 省電模式 280
6.1.5 結束語 281
6.1.6 參考資料與推薦讀物 281
6.2 Doze模式與App StandBy 282
6.2.1 概述 282
6.2.2 了解Doze模式 282
6.2.3 了解App StandBy 284
6.2.4 對其他用例的支持 284
6.2.5 在Doze模式和App StandBy下進行測試 285
6.2.6 Doze模式的實現 287
6.2.7 App StandBy的實現 293
6.2.8 參考資料與推薦讀物 297
6.3 Android 8.0上的后臺限制 297
6.3.1 概覽 298
6.3.2 后臺服務限制 299
6.3.3 廣播限制 300
6.3.4 系統實現 301
6.3.5 結束語 308
第7章 面向設備管理的改進 310
7.1 多用戶的支持 310
7.1.1 術語 311
7.1.2 支持多用戶 312
7.1.3 多用戶的實現 313
7.1.4 參考資料與推薦讀物 333
7.2 設備管理 334
7.2.1 Device Administration API介紹 334
7.2.2 開發設備管理程序 335
7.3 面向企業環境的Android 339
7.3.1 企業環境解決方案 340
7.3.2 受管理資料(Managed Profiles) 340
7.3.3 受管理資料的內部實現 342
7.3.4 參考資料與推薦讀物 349
第8章 Android系統安全改進 350
8.1 Android系統安全概覽 350
8.2 運行時權限 351
8.2.1 功能介紹 351
8.2.2 新增API 354
8.2.3 參考資料與推薦讀物 370
第9章 圖形系統改進 371
9.1 整體架構 371
9.1.1 Android圖形組件 371
9.1.2 組件 373
9.1.3 Android如何繪制視圖 374
9.1.4 關于硬件加速 376
9.1.5 參考資料與推薦讀物 377
9.2 圖形系統組件 377
9.2.1 Activity與Surface 377
9.2.2 Gralloc 379
9.2.3 BufferQueue 382
9.2.4 Surface 384
9.2.5 參考資料與推薦讀物 388
9.3 Project Butter 388
9.3.1 FPS 389
9.3.2 VSYNC 391
9.3.3 Choreographer與VSYNC 392
9.3.4 Triple Buffer 398
9.3.5 參考資料與推薦讀物 400
9.4 SurfaceFlinger 400
9.4.1 SurfaceFlinger 介紹 401
9.4.2 Hardware Composer 402
9.4.3 SurfaceFlinger的啟動 403
9.4.4 SurfaceFlinger的對外接口 405
9.4.5 VSYNC的傳遞 407
9.4.6 SurfaceFlinger的事件 409
9.4.7 圖層的合成 411
9.4.8 刷新 412
9.4.9 參考資料與推薦讀物 413
9.5 Vulkan簡介 414
9.5.1 Vulkan組件 414
9.5.2 修改的組件 415
9.5.3 Vulkan API 415
9.5.4 參考資料與推薦讀物 415
第10章 系統架構改進 416
10.1 Project Treble整體介紹 417
10.2 HIDL 420
10.2.1 語法介紹 421
10.2.2 HIDL 與 Binder 422
10.3 ConfigStore HAL 423
10.3.1 概述 423
10.3.2 內部實現 424
10.4 Vendor Native Development Kit 426
10.5 Vendor Interface Object 427
10.5.1 概述 427
10.5.2 Manifest 429
10.5.3 內部實現 429
序: