Android Launcher 應用開發 Android Launcher应用开发

張泳 葛麗娜

  • 出版商: 人民郵電
  • 出版日期: 2016-07-01
  • 定價: $414
  • 售價: 8.5$352
  • 語言: 簡體中文
  • 頁數: 365
  • 裝訂: 平裝
  • ISBN: 7115427143
  • ISBN-13: 9787115427144
  • 相關分類: Android

無法訂購

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

商品描述

<內容介紹>

本書以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