目錄
第一部分 Launcher開發(fā)基礎
第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的應用程序根節(jié)點配置 11
1.3.4 Launcher3的應用程序組件配置 13
1.4 Protocol Buffer設計 16
第2章 LauncherApplication 17
2.1 創(chuàng)建Launcher應用程序 17
2.2 Launcher應用程序終止 18
2.3 注意事項 18
第二部分 Launcher的控制中心
第3章 Launcher的狀態(tài)保存與恢復 22
3.1 Android的狀態(tài)保存機制 22
3.2 Android的狀態(tài)恢復機制 29
3.2.1 onRestoreInstanceState的調用 29
3.2.2 onRestoreInstanceState的調用條件 32
3.2.3 Activity中的狀態(tài)恢復 34
3.2.4 Launcher中的狀態(tài)恢復 35
第4章 初始化桌面 36
4.1 初始化Launcher運行環(huán)境 37
4.2 為生成Launcher的動態(tài)網格進行必要的準備 37
4.3 生成動態(tài)網格 39
4.4 獲取共享數據對象以及建立Launcher與LauncherModel的聯系 39
4.5 根據動態(tài)網格刷新圖標緩沖區(qū) 40
4.6 初始化拖曳控制器 40
4.7 獲取應用程序運行狀態(tài) 41
4.8 創(chuàng)建并啟動Widget Host 42
4.9 檢查配置是否有更新 42
4.10 裝載Launcher布局以及實例化相關控件 46
4.11 根據動態(tài)網格的屬性部署桌面 48
4.12 Launcher的狀態(tài)恢復 49
4.13 監(jiān)聽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的狀態(tài) 68
7.1 Activity的暫停狀態(tài) 68
7.1.1 Activity暫停狀態(tài)發(fā)生的場景 68
7.1.2 Activity中暫停的實現 73
7.1.3 Launcher的暫停過程 74
7.2 Activity的啟動狀態(tài) 75
7.2.1 Activity中onStart的實現 75
7.2.2 Launcher的onStart實現 76
7.3 Activity的停止狀態(tài) 76
7.3.1 Activity中onStop的實現 77
7.3.2 Launcher的onStop實現 77
7.4 Launcher的銷毀狀態(tài) 78
7.4.1 銷毀狀態(tài)簡介 78
7.4.2 什么時候會被銷毀 78
7.4.3 銷毀狀態(tài)的處理 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:創(chuàng)建桌面小部件時 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