1. 程式人生 > >Android 定製自己的launcher

Android 定製自己的launcher

      launcher是安卓系統中的桌面啟動器,安卓系統的桌面UI統稱為Launcher。Launcher是安卓系統中的主要程式元件之一,安卓系統中如果沒有Launcher就無法啟動安卓桌面,Launcher出錯的時候,安卓系統會出現“程序 com.android.launcher 意外停止”的提示視窗。這時需要重新啟動Launcher。

      對於大部分Android開發來說不用改變Android的launcher,不過有的需要做定製的Android系統,比如有的商家做的是放在汽車上的平板,這種情況下,用原生態的Android系統,圖示眾多和圖示小,給使用者的使用帶來了不好的體驗,這種情況下,只需要自己做一個launcher來代替Android原生態的launcher就可以了,在自己的launcher裡面,你想放哪些圖示就放哪些圖示,想放多大就放多大。

      把自己的apk改成launcher的方法:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    <category android:name="android.intent.category.HOME" />
    <category android:name="android.intent.category.DEFAULT" 
/> <category android:name="android.intent.category.MONKEY" /> </intent-filter>

      然後執行程式,重啟之後,就會出現一個選擇launcher的頁面,

      這個時候表示系統篩選的時候能夠識別自己做的launcher。比如點選“測試用”app,開啟之後,按home鍵就不會再出現Android自帶的桌面了,只會出現“測試用”app的首頁。不過在首頁按返回鍵會返回到選擇launcher這個頁面,去重寫onBackPressed()也沒有用,暫時不知,後面再看

@Override
public void onBackPressed() { // super.onBackPressed(); }

至於怎麼讓系統不彈出選擇而是預設,後面再看。

(後面遇到了自己寫的luncher打敗了系統的luncher的情況,一開機自動選擇自己的luncher,只有在自己luncher損壞的情況下才會出現系統的luncher,這個效果的做法,是把自己寫的luncher的包名寫入系統裡面,具體怎麼操作,我就不清楚了)

題外話:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />   </intent-filter>

     如果你的應用程式中沒有宣告任何一個活動作為主活動,這個程式仍然是可以正常安裝的,只是你無法在啟動器中看到或者開啟這個程式。這種程式一般都是作為第三方服務供其他的應用在內部進行呼叫的,如支付寶快捷支付服務。