Android Launcher套用開發

Android Launcher套用開發

《Android Launcher套用開發》是2016年7月人民郵電出版社出版的圖書,作者是張泳、葛麗娜。

基本介紹

  • 中文名:Android Launcher套用開發
  • 作者:張泳、葛麗娜
  • ISBN:9787115427144
  • 頁數:365頁
  • 定價:69元
  • 出版社:人民郵電出版社
  • 出版時間:2016年7月
  • 裝幀:平裝
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書以Launcher為解析核心,全面深入地介紹了Launcher的清單、應用程式組件、資源配置、UI組件以及Launcher的操作等,包含了整個桌面的體系和開發技巧。本書語言通俗易懂,解析全面,有利於讀者理解整個Launcher桌面的體系。
本書適用於有一定Android開發經驗的工程師,也適合作為中高 級Android開發培訓教程。

圖書目錄

第 一部分  Launcher開發基礎
第 1章 Launcher簡介 2
1.1 總體結構 2
1.2 Launcher3的交叉編譯 5
1.2.1 Launcher3的主體編譯 7
1.2.2 Protocol Buffer的Debug工具依賴庫編譯 8
1.2.3 生成Protocol Buffer的測試工具 9
1.2.4 Launcher3的編譯 9
1.3 Launcher3的應用程式體系 10
1.3.1 Launcher3的基礎信息 10
1.3.2 Launcher3的許可權設定 10
1.3.3 Launcher3的應用程式根節點配置 11
1.3.4 Launcher3的應用程式組件配置 13
1.4 Protocol Buffer設計 16
第 2章 LauncherApplication 17
2.1 創建Launcher應用程式 17
2.2 Launcher應用程式終止 18
2.3 注意事項 18
第 二部分 Launcher的控制中心
第3章 Launcher的狀態保存與恢復 22
3.1 Android的狀態保存機制 22
3.2 Android的狀態恢復機制 29
3.2.1 onRestoreInstanceState的調用 29
3.2.2 onRestoreInstanceState的調用條件 32
3.2.3 Activity中的狀態恢復 34
3.2.4 Launcher中的狀態恢復 35
第4章 初始化桌面 36
4.1 初始化Launcher運行環境 37
4.2 為生成Launcher的動態格線進行必要的準備 37
4.3 生成動態格線 39
4.4 獲取共享數據對象以及建立Launcher與LauncherModel的聯繫 39
4.5 根據動態格線刷新圖示緩衝區 40
4.6 初始化拖曳控制器 40
4.7 獲取應用程式運行狀態 41
4.8 創建並啟動Widget Host 42
4.9 檢查配置是否有更新 42
4.10 裝載Launcher布局以及實例化相關控制項 46
4.11 根據動態格線的屬性部署桌面 48
4.12 Launcher的狀態恢復 49
4.13 監聽Widget配置變化 51
4.14 載入桌面數據 52
4.15 更新必要的圖示 52
4.16 解鎖Launcher的方向設定 53
4.17 首 次使用時顯示桌面的幫助界面 54
第5章 Home鍵:Launcher的另一種啟動方式 56
5.1 Launcher的重要配置 56
5.2 Home鍵的框架行為 57
5.2.1 導航欄的實現 57
5.2.2 視窗管理器的處理 58
5.2.3 Launcher的相關處理 59
第6章 Launcher的顯示 63
6.1 關於Activity的onResume 63
6.2 Activity類的onResume方法實現 63
6.3 Launcher的onResume實現 64
第7章 Launcher的狀態 68
7.1 Activity的暫停狀態 68
7.1.1 Activity暫停狀態發生的場景 68
7.1.2 Activity中暫停的實現 73
7.1.3 Launcher的暫停過程 74
7.2 Activity的啟動狀態 75
7.2.1 Activity中onStart的實現 75
7.2.2 Launcher的onStart實現 76
7.3 Activity的停止狀態 76
7.3.1 Activity中onStop的實現 77
7.3.2 Launcher的onStop實現 77
7.4 Launcher的銷毀狀態 78
7.4.1 銷毀狀態簡介 78
7.4.2 什麼時候會被銷毀 78
7.4.3 銷毀狀態的處理 81
第8章 Launcher的啟動套用及等待結果 85
8.1 在Launcher中啟動套用 85
8.1.1 安全啟動應用程式的通用方法 86
8.1.2 真正啟動應用程式的方法 86
8.2 啟動套用並等待結果 89
8.3 Launcher的套用場景 90
8.3.1 場景1:往桌面上添加桌面小部件時 90
8.3.2 場景2:往桌面上添加應用程式的捷徑時 92
8.3.3 場景3:用戶啟動選擇壁紙時 93
8.3.4 場景4:創建桌面小部件時 93
8.3.5 場景5:桌面小部件的視圖未能完全恢復時 95
8.4 應用程式處理端如何設定必要的返回 96
8.5 處理返回結果 97
第9章 Launcher的返回鍵處理 99
9.1 Activity的onKeyDown方法的實現 99
9.2 Activity的onKeyUp方法的實現 100
9.3 Activity的onBackPressed方法的實現 101
9.4 Launcher的onBackPressed方法 101
第 10章 Launcher的按鍵處理 104
10.1 onKeyDown和onKeyUp方法 104
10.1.1 Activity中的onKeyDown方法 104
10.1.2 Launcher的onKeyDown方法 110
10.2 自主分發按鍵事件 112
10.2.1 Activity的dispatchKey-Event實現 112
10.2.2 Launcher中的按鍵分發 113
第 11章 Launcher的視窗周期 115
11.1 應用程式中Activity的創建 115
11.2 應用程式視窗的創建 119
11.3 視窗中設定UI 121
11.3.1 在視窗中設定布局 121
11.3.2 安裝視窗容器 123
11.3.3 初始化應用程式的ActionBar 124
11.4 Launcher中實現的視窗狀態變化接口 124
11.4.1 應用程式添加到視窗中 124
11.4.2 應用程式從視窗中拆離 128
11.4.3 視窗焦點變化 131
第 12章 Launcher實現的框架接口 132
12.1 控制項點擊事件監聽接口 132
12.1.1 設定點擊監聽器方法 132
12.1.2 點擊事件的處理機制 133
12.1.3 Launcher的點擊事件處理 134
12.2 控制項長按事件監聽接口 142
12.2.1 什麼條件下被認為是長按事件 142
12.2.2 Launcher的控制項長按事件處理 146
12.3 Launcher的Touch事件 148
12.3.1 創建應用程式視窗與底層輸入設備之間的關聯 148
12.3.2 ViewRootImpl中Window- InputEventReceiver類的實例化 152
12.3.3 基於視窗管理服務的訊息分發 153
12.3.4 Touch事件的應用程式之旅 156
第 13章 Launcher控制接口的實現 162
13.1 LauncherModel的Callbacks接口的定義 162
13.2 指示Launcher顯示時需要重新載入數據 164
13.3 獲取當前正在顯示的桌面頁索引 164
13.4 載入Workspace的預處理 165
13.5 批量添加捷徑或者資料夾 166
13.6 綁定並且添加桌面頁 169
13.7 綁定資料夾 170
13.8 指示載入過程完成 170
13.9 綁定桌面小部件 172
13.10 綁定應用程式選單界面數據 175
13.11 批量添加應用程式一體化操作 175
13.12 更新應用程式 177
13.13 應用程式已經被恢復 177
13.14 更新應用程式狀態 178
13.15 更新應用程式信息 178
13.16 應用程式被刪除 178
13.17 更新應用程式選單捷徑與桌面小部件信息 179
13.18 更新搜尋相關信息 179
13.19 是否在應用程式選單按鈕範圍內 180
13.20 保存同步載入頁面 180
第 14章 Launcher的內部工具 181
14.1 客戶定製頁面 181
14.1.1 組裝定製化頁面內容 181
14.1.2 定製化頁面的變化信號處理 182
14.1.3 添加定製化頁面接口 182
14.1.4 定製化頁面的屬性及控制 184
14.1.5 默認的定製化頁面 184
14.2 Launcher3的搜尋 184
14.2.1 發現搜尋提供者 185
14.2.2 將搜尋信息轉變為可填充的視圖 185
14.3 Launcher的一些工具 187
14.3.1 桌面組件的ID分配 187
14.3.2 生成應用程式捷徑的方法 188
14.3.3 添加桌面組件 189
14.4 桌面和應用程式選單之間的切換 195
14.4.1 桌面的顯示 195
14.4.2 顯示應用程式選單界面 196
14.4.3 進入預覽模式 196
第三部分 Lauhcher開發進階
第 15章 Launcher的資料庫 198
15.1 關於ContentProvider 198
15.2 Launcher資料庫組件的配置 199
15.2.1 Launcher資料庫組件的訪問許可權定義及其使用方法 199
15.2.2 Launcher資料庫組件的配置 200
15.2.3 讀寫許可權的使用 201
15.3 Launcher的資料庫詳解 201
15.3.1 Launcher的資料庫實現 201
15.3.2 Launcher的ContentProvider 211
15.4 Launcher資料庫工具 216
15.4.1 Launcher資料庫刪除工具 217
15.4.2 Launcher資料庫合併工具 217
15.4.3 必要時導入默認桌面配置 222
15.4.4 獲取默認配置檔案解析器實例 224
15.4.5 Launcher數據標誌清理工具 224
15.5 Android資料庫實戰 225
15.5.1 關於數據的約定 225
15.5.2 定義並使用TulingDBDemo的讀寫許可權 225
15.5.3 資料庫框架搭建 226
15.5.4 資料庫檔案以及表的定義 226
15.5.5 定義訪問資料庫的訪問接口 228
15.5.6 ContentProvider的實現 229
15.5.7 運算元據庫 232
第 16章 Launcher的廣播接收器 234
16.1 Launcher中的廣播概述 234
16.1.1 壁紙變更廣播接收器 234
16.1.2 桌面小部件容器的重置廣播接收器 235
16.1.3 安裝捷徑的接口 235
16.1.4 卸載捷徑的接口 235
16.1.5 管理應用程式的廣播接收器 236
16.1.6 Launcher的中樞神經:LauncherModel 236
16.2 壁紙變更廣播接收器 237
16.3 桌面小部件容器的重置廣播接收器 237
16.3.1 概況 237
16.3.2 注意事項 238
16.3.3 容器重置處理的流程 239
16.4 捷徑的安裝接口 242
16.4.1 安裝捷徑接口的使用實例 242
16.4.2 添加捷徑的入口實現 243
16.4.3 Launcher2與Launcher3的區別 247
16.5 捷徑的卸載接口 247
16.5.1 卸載捷徑接口的使用 248
16.5.2 卸載捷徑入口實現 248
16.6 管理應用程式的廣播接收器 251
第 17章 Launcher的數據中心:LauncherModel 252
17.1 LauncherModel的創建 252
17.2 LauncherModel的構造函式 253
17.3 與LauncherModel的溝通方式 255
17.3.1 LauncherModel操作的回調接口 255
17.3.2 廣播接口 257
17.3.3 LauncherModel的應用程式級別接口 258
17.4 LauncherModel的載入任務LoaderTask 267
17.4.1 LoaderTask的定義、屬性及構造 268
17.4.2 LoaderTask狀態查詢接口 269
17.4.3 指定頁面載入接口 270
17.4.4 停止載入接口 270
17.4.5 獲取Launcher的通知接口 271
17.4.6 LoaderTask的run接口實現 272
17.4.7 LoaderTask的桌面數據載入及綁定工具 274
17.4.8 載入過程工具 287
17.5 桌面空間的處理 293
第 18章 Launcher的壁紙配置 295
18.1 如何通過Launcher設定壁紙 295
18.2 Launcher3壁紙代碼結構與使用簡介 296
18.3 壁紙資源的來源 298
18.3.1 來源一:指定系統套用的某些資源 299
18.3.2 來源二:指定系統套用中所定製的路徑下的圖片資源 300
18.3.3 來源三:Launcher自帶的壁紙資源 301
18.3.4 來源四:Android系統默認壁紙 302
18.4 Launcher3壁紙的內部分類 305
18.4.1 功能性選項:PickImage-Info 305
18.4.2 URI類型壁紙項:URIWallpaperInfo 307
18.4.3 檔案類型的壁紙項:FileWallpaperInfo 311
18.4.4 資源類型的壁紙項:ResourceWallpaperInfo 312
18.4.5 默認壁紙項:DefaultWallpaperInfo 313
18.5 關於壁紙的工具 315
18.5.1 設定系統壁紙的可見性 315
18.5.2 設定壁紙尺寸工具 316
18.5.3 設定壁紙的方法 317
18.6 利用Launcher設定壁紙 318
第 19章 Launcher的上下文 319
19.1 LauncherAppState的使用 319
19.1.1 LauncherAppState初始化的前提 319
19.1.2 LauncherAppState的初始化 320
19.2 Launcher應用程式被終止的必要清理 321
19.3 監聽資料庫變化的觀察者 321
19.4 獲取螢幕方向的工具 322
19.5 關於弱引用 322
19.6 其他接口的套用 323
第 20章 Launcher中的備份與還原 325
20.1 應用程式備份代理器的配置 325
20.2 備份與管理服務的開啟與關閉 326
20.3 實現數據備份與還原代理的幫助類 327
20.3.1 LauncherBackupHelper的performBackup方法 327
20.3.2 initializeIconCache方法 330
20.3.3 LauncherBackupHelper的restoreEntity方法 336
20.4 Launcher數據備份與還原的代理 338
20.4.1 創建數據備份與還原代理 338
20.4.2 應用程式的數據還原 339
第 21章 基於Google的Protocol Buffer協定開發 341
21.1 實際套用場景概述 341
21.1.1 備份流程 341
21.1.2 還原流程 341
21.2 Protocol Buffer簡介 342
21.3 PB訊息的定義 344
21.3.1 指定欄位的類型 344
21.3.2 為訊息欄位指定TAG 345
21.3.3 為訊息欄位指定規則 345
21.3.4 增加訊息定義 346
21.3.5 為訊息添加注釋 347
21.3.6 編譯.proto檔案概況 347
21.4 簡單PB訊息的配置 348
21.4.1 PB的基礎數據類型 348
21.4.2 基礎數據類型的默認配置 349
21.4.3 PB的枚舉類型 350
21.5 複合PB訊息的定義 351
21.5.1 在訊息中使用其他訊息 351
21.5.2 PB中的內嵌訊息 353
21.6 PB訊息的高 級用法 354
21.6.1 升級一則訊息 354
21.6.2 PB的map類型 355
21.6.3 PB的包 355
21.6.4 PB的其他選項 356
21.7 生成代碼 358
21.7.1 創建ProtocolBuffDemo工程 358
21.7.2 編寫第 一個proto檔案 360
21.7.3 使用protoc工具編譯TulingMessage.proto 361
21.7.4 使用生成TulingMessages類 362

相關詞條

熱門詞條

聯絡我們