Launcher俗称HomeScreen,也就是我们启动Android手机,第一眼看到的应用程序,而这个应用程序是比较特殊而且任务艰巨的。
它负责了我们除了应用本身操作以外的所有操作,它负责了我们有几个桌面,点击应用图标启动应用程序,长时间按桌面出现上下文菜单,
长时间按桌面的图标出现垃圾箱,拖动应用图标重新定位等等,一系列的操作。我将截些图让大家更容易理解!
图1:开机画面,Laucher的主界面 图2:打开抽屉,列出所有我们的所安装应用
图三:长按图标,抽屉变成垃圾箱了 图四:手指向左滑动进入另一个桌面
我就先截这几个图让大家感受感受,图2中我们列出的所有应用并不包括诸如:Launcher,Widget等应用,是因为我们我们列出的应用仅仅是在AndroidManifest.xml配置文件有这样标记的应用(如下代码:)
- <activity android:name= ".HomeStyle"
- android:theme="@android:style/Theme.NoTitleBar"
- android:label="@string/app_name" >
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
<activity android:name=".HomeStyle" android:theme="@android:style/Theme.NoTitleBar" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
其中第5,6行是关键,有了这两句,你的应用程序才会被列出,而Launcher特殊就是这个应用中唯一一个Activity是这样申明的,如下代码:
- <activity
- android:name="Launcher"
- android:launchMode="singleTask"
- android:clearTaskOnLaunch="true"
- android:stateNotNeeded="true"
- android:theme="@android:style/Theme.Wallpaper.NoTitleBar"
- android:screenOrientation="nosensor"
- android:windowSoftInputMode="stateUnspecified|adjustPan" >
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.HOME" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.MONKEY" />
- </intent-filter>
- </activity>
<activity android:name="Launcher" android:launchMode="singleTask" android:clearTaskOnLaunch="true" android:stateNotNeeded="true" android:theme="@android:style/Theme.Wallpaper.NoTitleBar" android:screenOrientation="nosensor" android:windowSoftInputMode="stateUnspecified|adjustPan"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME"/> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.MONKEY" /> </intent-filter> </activity>
这里第11行起了作用了,大家看出来Launcher与普通应用程序的区别了吗,变成Home的时候,当我们重新安装一个Launcher的时候,我们按一下手机的HOME键会出现Launcher列表如下图:
图5:Launcher列表 图6:传说中的Launcher2