-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
Android進階指北 版權信息
- ISBN:9787121393754
- 條形碼:9787121393754 ; 978-7-121-39375-4
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
Android進階指北 本書特色
適讀人群 :本書適合有一定基礎的Android應用開發工程師和對Android系統源碼感興趣的讀者閱讀。1.Android進階三部曲是專門為應用開發進階和面試打造的系列圖書,共同構建Android進階三部曲知識體系。 2.本書是Android進階三部曲第三部,暢銷書《Android進階之光》《Android進階解密》 作者又一力作! 3.本書主要內容:系統源碼的下載、編譯、調試,Binder原理,PMS/IMS,Gradle核心思想,Jetpack架構組件,Flutter等。 4.本書適合有一定基礎的Android應用開發工程師和對Android系統源碼感興趣的讀者閱讀。
Android進階指北 內容簡介
本書是一本Android進階圖書,結合《Android進階之光》和《Android進階解密》兩本書介紹的知識,一同建立起Android應用開發進階知識體系。全書共分13章,主要從3個方面來組織內容:(1)Android應用開發所需要掌握的系統源碼知識,包括系統源碼的下載、編譯、調試,包管理機制,輸入系統,Native Binder,Java Binder;(2)應用開發必需的知識點,包括Groovy基礎、Gradle核心思想、Gradle的Android插件、Android Jetpack架構組件;(3)與跨平臺開發相關的知識點,包括跨平臺技術演進、Dart基礎、Flutter基礎。
Android進階指北 目錄
目錄
Android進階三部曲知識體系 1
第1章 系統源碼的下載、編譯、調試 5
1.1 使用VirtualBox安裝Ubuntu 5
1.1.1 安裝Ubuntu的步驟 6
1.1.2 安裝增強工具 12
1.2 AOSP源碼下載 14
1.2.1 AOSP簡介 14
1.2.2 下載repo 15
1.2.3 下載源碼 15
1.3 內核源碼下載 16
1.4 系統源碼的整編和單編 18
1.4.1 編譯系統概述 18
1.4.2 編譯源碼的方式 20
1.4.3 準備編譯環境 20
1.4.4 源碼整編 21
1.4.5 源碼單編 24
1.5 Source Insight導入系統源碼 25
1.5.1 新建源碼項目 25
1.5.2 定位文件 27
1.5.3 全局搜索 28
1.6 Android Studio導入系統源碼 29
1.7 Android Studio調試系統源碼 33
1.7.1 AOSP源碼項目調試 34
1.7.2 導入部分源碼調試 38
1.7.3 新建Android項目調試 39
1.8 本章小結 40
第2章 理解包管理機制和PMS 41
2.1 PackageInstaller的初始化 41
2.1.1 PackageManager簡介 42
2.1.2 APK的文件結構和安裝方式 42
2.1.3 尋找PackageInstaller入口 43
2.1.4 PackageInstallerActivity解析 47
2.1.5 PackageInstaller初始化的過程 51
2.2 PackageInstaller安裝APK過程 52
2.2.1 PackageInstaller中的處理 52
2.2.2 Java框架層的處理 57
2.2.3 PackageInstaller安裝APK的過程 59
2.3 PMS處理APK的安裝過程 59
2.3.1 PackageHandler處理安裝消息 60
2.3.2 復制APK的處理 66
2.3.3 PMS處理APK安裝 70
2.3.4 PMS處理APK安裝的步驟 76
2.4 PMS的創建過程 77
2.4.1 SystemServer處理部分 77
2.4.2 PMS構造方法 80
2.5 APK解析過程 91
2.5.1 引入PackageParser 91
2.5.2 PackageParser解析APK 92
2.5.3 Package的數據結構 99
2.6 本章小結 100
第3章 理解輸入系統和IMS 102
3.1 輸入事件傳遞流程的組成部分 103
3.2 IMS的誕生 105
3.2.1 SystemServer處理部分 105
3.2.2 InputManagerService構造方法 107
3.3 IMS的啟動過程 110
3.4 InputDispatcher的啟動過程 112
3.5 InputReader處理事件的過程 113
3.6 輸入事件的處理總結 119
3.7 InputReader的加工類型 120
3.8 InputDispatcher的分發過程 123
3.8.1 喚醒InputDispatcherThread 123
3.8.2 InputDispatcher進行分發 124
3.9 事件分發到目標窗口的過程 128
3.9.1 為事件尋找合適的分發目標 128
3.9.2 處理點擊形式的事件 132
3.9.3 向目標窗口發送事件 135
3.9.4 Motion事件分發過程總結 136
3.10 本章小結 138
第4章 IPC機制 139
4.1 Linux和Android的IPC機制 139
4.1.1 Linux中的IPC機制 139
4.1.2 Android中的IPC機制 141
4.2 開啟多進程 142
4.2.1 開啟多進程舉例 142
4.2.2 開啟多進程引出的問題 144
4.3 用Messenger進行進程間通信 146
4.4 使用AIDL實現跨進程方法調用 150
4.4.1 創建AIDL文件 150
4.4.2 創建服務端 152
4.4.3 客戶端調用 153
4.5 用ContentProvider進行進程間通信 155
4.5.1 建立數據庫,方便ContentProvider使用 155
4.5.2 使用ContentProvider對數據庫進行操作 156
4.5.3 在Activity中調用另一個進程的GameProvider方法 158
4.6 用Socket實現跨進程聊天程序 160
4.7 本章小結 167
第5章 Native Binder原理 168
5.1 學習Binder的前置知識點 168
5.1.1 Linux和Binder的IPC通信原理 169
5.1.2 使用Binder的原因 173
5.1.3 學習Binder的原因 174
5.2 ServiceManager中的Binder機制 175
5.2.1 基于Binder通信的C/S架構 175
5.2.2 MediaServer的main函數 176
5.2.3 每個進程唯一的ProcessState實例 177
5.2.4 解析ServiceManager中的Binder機制 180
5.2.5 小結 187
5.3 系統服務的注冊過程 187
5.3.1 從調用鏈角度說明MediaPlayerService的注冊過程 187
5.3.2 從進程角度說明MediaPlayerService的注冊過程 195
5.3.3 小結 196
5.4 ServiceManager的啟動過程 196
5.4.1 打開binder設備 198
5.4.2 注冊成為Binder機制的上下文管理者 201
5.4.3 循環等待和處理客戶端發來的請求 203
5.5 系統服務的獲取過程 206
5.5.1 客戶端MediaPlayerService請求獲取服務 206
5.5.2 服務端ServiceManager處理請求 212
5.6 本章小結 218
第6章 Java Binder原理 219
6.1 Java Binder的JNI注冊 219
6.1.1 Binder類的注冊 223
6.1.2 BinderInternal類的注冊 224
6.2 Java Binder中系統服務的注冊過程 225
6.2.1 將AMS注冊到ServiceManager 226
6.2.2 引出JavaBBinder 230
6.2.3 解析JavaBBinder 232
6.2.4 Java Binder架構 234
6.3 本章小結 235
第7章 Groovy基礎 236
7.1 Groovy概述 236
7.2 Groovy編寫和調試 237
7.3 變量 237
7.4 方法 237
7.5 類 238
7.6 語句 239
7.6.1 斷言 239
7.6.2 for循環 239
7.6.3 switch語句 240
7.7 數據類型 241
7.7.1 字符串 241
7.7.2 List 242
7.7.3 Map 242
7.7.4 閉包(Closure) 243
7.8 I/O操作 244
7.8.1 文件讀取 244
7.8.2 文件寫入 244
7.9 其他 245
7.9.1 asType 245
7.9.2 判斷是否為真 245
7.9.3 安全取值 245
7.9.4 with操作符 246
7.10 本章小結 246
第8章 Gradle核心思想 247
8.1 Gradle概述 247
8.1.1 項目自動化 248
8.1.2 構建工具 248
8.1.3 Gradle的特性 253
8.2 Gradle基礎知識 255
8.2.1 配置Gradle環境 255
8.2.2 實現Hello World 257
8.2.3 Gradle的任務 258
8.2.4 Gradle日志級別 260
8.2.5 Gradle 命令行 261
8.3 被忽視的Gradle Wrapper 263
8.3.1 為什么需要Gradle Wrapper 263
8.3.2 構建Gradle Wrapper 264
8.3.3 配置Gradle Wrapper 265
8.3.4 使用Gradle Wrapper 266
8.3.5 升級Gradle Wrapper 267
8.3.6 自定義Gradle Wrapper 268
8.4 Gradle插件基礎 268
8.4.1 Gradle插件概述 268
8.4.2 應用Gradle插件 270
8.4.3 插件DSL 272
8.4.4 自定義對象插件 273
8.4.5 Gradle插件的作用和優點 274
8.5 自定義Gradle插件 274
8.5.1 在build.gradle中編寫 275
8.5.2 在buildSrc工程項目中編寫 277
8.5.3 在獨立項目中編寫 278
8.6 本章小結 281
第9章 Gradle的Android插件 282
9.1 什么是Gradle的Android插件 282
9.2 Android Studio的模塊類型和項目視圖 283
9.3 項目build.gradle 284
9.4 模塊build.gradle 285
9.4.1 Gradle的Android插件類型 286
9.4.2 Android塊 286
9.4.3 dependencies塊 291
9.5 Android簽名文件配置 292
9.5.1 自定義簽名信息文件 292
9.5.2 本地添加簽名信息文件 293
9.6 Gradle的庫依賴 294
9.7 Gradle的庫依賴管理 295
9.7.1 Gradle的依賴傳遞 296
9.7.2 Gradle的依賴檢查 296
9.7.3 Gradle的依賴沖突 299
9.8 本章小結 301
第10章 Android Jetpack架構組件 302
10.1 Android Jetpack簡介 303
10.2 Android Jetpack分類 303
10.2.1 Architecture 304
10.2.2 Foundationy 305
10.2.3 Behavior 306
10.2.4 UI 307
10.3 在應用中引入Jetpack相關組件 307
10.4 使用Lifecycle 307
10.4.1 為什么需要Lifecycle 307
10.4.2 如何使用Lifecycle 309
10.4.3 Lifecycle應用舉例 312
10.4.4 自定義LifecycleOwner 315
10.5 Lifecycle的原理 316
10.5.1 Lifecycle的生命周期狀態事件和狀態 316
10.5.2 Lifecycle如何觀察Activity和Fragment的生命周期 317
10.5.3 Lifecycle關聯類 327
10.6 使用LiveData 328
10.6.1 什么是LiveData 328
10.6.2 LiveData的基本用法 329
10.6.3 更改LiveData中的數據 330
10.6.4 合并多個LiveData數據源 332
10.6.5 拓展LiveData對象 333
10.7 LiveData的原理 335
10.7.1 LiveData如何觀察組件生命周期變化 335
10.7.2 LiveData的observe方法回調 336
10.7.3 postValue/setValue方法分析 339
10.7.4 Transformations.map方法分析 341
10.7.5 LiveData關聯類 343
10.8 使用ViewModel 344
10.8.1 什么是ViewModel 345
10.8.2 ViewModel的基本使用方法 345
10.8.3 ViewModel的生命周期 347
10.9 ViewModel的原理 348
10.10 本章小結 351
第11章 跨平臺技術演進 352
11.1 Web App 353
11.2 Hybrid App 353
11.2.1 Cordova 354
11.2.2 Ionic 355
11.2.3 VasSonic 355
11.2.4 微信小程序 356
11.3 語言編譯轉換 357
11.4 原生渲染 358
11.4.1 React Native 358
11.4.2 Weex 358
11.4.3 快應用 359
11.5 自繪UI 360
11.5.1 Qt 360
11.5.2 Flutter 361
11.6 本章小結 362
第12章 Dart基礎 363
12.1 Dart開發環境搭建 363
12.2 Dart概述 364
12.3 Dart的特性和重要概念 365
12.4 Dart關鍵字 366
12.5 變量 367
12.6 基本數據類型 367
12.6.1 Number 367
12.6.2 String 368
12.6.3 Boolean 368
12.6.4 List 368
12.6.5 Set 369
12.6.6 Map 369
12.7 函數 369
12.7.1 可選參數 370
12.7.2 默認參數值 370
12.7.3 main函數 371
12.7.4 匿名函數 371
12.8 流程控制語句 371
12.8.1 for循環 372
12.8.2 switch和case 372
12.9 捕獲異常 373
12.10 為類添加新的功能 373
12.11 庫的使用方法 374
12.12 異步支持 375
12.13 使類可調用 376
12.14 創建實例 376
12.15 本章小結 376
第13章 Flutter基礎 377
13.1 Flutter開發環境搭建和Hello World 377
13.1.1 Flutter概述 378
13.1.2 Flutter開發環境搭建 378
13.1.3 運行一個Flutter Demo 383
13.1.4 Hello World 385
13.2 Widget基礎 386
13.2.1 Widget概述 387
13.2.2 Widget的分類 387
13.2.3 Widget的狀態分類 388
13.2.4 根Widget的種類 388
13.3 Basic Widget 389
13.3.1 代碼模板和主題 389
13.3.2 文本 390
13.3.3 圖片 391
13.3.4 凸起按鈕 394
13.3.5 其他Widget 395
13.4 Material組件 397
13.4.1 MaterialApp 398
13.4.2 Scaffold 401
13.4.3 AppBar 403
13.4.4 BottomNavigationBar 405
13.4.5 TabBar 407
13.4.6 Drawer 411
13.5 Scrolling Widget 413
13.5.1 ListView 413
13.5.2 GridView 418
13.5.3 PageView 419
13.6 手勢相關Widget 421
13.6.1 指針事件 421
13.6.2 手勢 422
13.6.3 使用GestureDetector 423
13.6.4 使用Dismissible 424
13.7 資源和圖片 426
13.7.1 指定asset 426
13.7.2 加載文本 427
13.7.3 加載圖片 430
13.8 布局Widget 433
13.8.1 線性布局Widget 433
13.8.2 流式布局Widget 434
13.8.3 層式布局Widget 436
13.8.4 彈性布局Widget 438
13.9 網絡請求庫Dio 440
13.9.1 Dio的使用入門 440
13.9.2 Dio訪問網絡 441
13.10 JSON數據解析 443
13.10.1 使用json.decode方法 443
13.10.2 手動編寫實體類 444
13.10.3 自動生成實體類 445
13.11 路由與數據傳遞 447
13.11.1 新建路由 447
13.11.2 使用注冊路由 450
13.11.3 路由間數據傳遞 451
13.12 Flutter與Android的相互通信 456
13.12.1 PlatformChannel概述 456
13.12.2 Flutter調用Android 458
13.12.3 Android調用Flutter 461
13.13 本章小結 465
Android進階指北 作者簡介
劉望舒,Android技術專家,Android進階三部曲《Android進階之光》 《Android進階解密》 《Android進階指北》作者,電子工業出版社博文視點2017、2018、2019年度優秀作者。CSDN知名博主,榮獲CSDN 2018年度博客之星稱號。GDG Devfest、Droidcon、安卓巴士開發者大會、全球移動開發者大會的特邀演講嘉賓或出品人。曾在多個知名大廠任職,目前就職于某大型互聯網公司,擔任技術負責人,負責管理和架構相關工作。
- >
羅庸西南聯大授課錄
- >
詩經-先民的歌唱
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)
- >
唐代進士錄
- >
二體千字文
- >
【精裝繪本】畫給孩子的中國神話
- >
新文學天穹兩巨星--魯迅與胡適/紅燭學術叢書(紅燭學術叢書)
- >
名家帶你讀魯迅:朝花夕拾