Launcher俗稱HomeScreen,也就是咱們啓動Android手機,第一眼看到的應用程序,而這個應用程序是比較特殊並且任務艱鉅的。java
它負責了咱們除了應用自己操做之外的全部操做,它負責了咱們有幾個桌面,點擊應用圖標啓動應用程序,長時間按桌面出現上下文菜單,android
長時間按桌面的圖標出現垃圾箱,拖動應用圖標從新定位等等,一系列的操做。我將截些圖讓你們更容易理解!app
![](http://static.javashuo.com/static/loading.gif)
圖1:開機畫面,Laucher的主界面 圖2:打開抽屜,列出全部咱們的所安裝應用ide
![](http://static.javashuo.com/static/loading.gif)
圖三:長按圖標,抽屜變成垃圾箱了 圖四:手指向左滑動進入另外一個桌面this
我就先截這幾個圖讓你們感覺感覺,圖2中咱們列出的全部應用並不包括諸如:Launcher,Widget等應用,是由於咱們咱們列出的應用僅僅是在AndroidManifest.xml配置文件有這樣標記的應用(以下代碼:)spa
- <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是這樣申明的,以下代碼:.net
- <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列表以下圖:code
![](http://static.javashuo.com/static/loading.gif)
圖5:Launcher列表 圖6:傳說中的Launcher2xml