目录
第一部分 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