前一阵子太忙了,但有不知道忙的什么,每天都在处理客户的需求,很少有时间总结知识。自从接收Launcher之后还没有做总结,以后后陆续的总结Launcher开发过程中遇到的问题。
Launcher的实质也就是一个普通应用,它只是比普通应用多配置了Category 的android:name=”android.intent.category.HOME”属性而已。当Android开机启动成功以后框架层会尝试启动包含上面属性配置的Activity,这样被启动的那个Activity就成了桌面。当我们按下设备的Home键时也会触发包含该属性的Activity。只不过当系统中只存在一个包含该属性的应用时,无论开机还是Home键触发都只会自动启动默认的;当存在多个时无论哪种触发都会弹出选择框进行选择设置。如果你想写死的话可以在ActivityManagerService服务中将该入口堵死。
一:launcher进程启动过程
首先看一下启动的流程图: