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>

     如果你的应用程序中没有声明任何一个活动作为主活动,这个程序仍然是可以正常安装的,只是你无法在启动器中看到或者打开这个程序。这种程序一般都是作为第三方服务供其他的应用在内部进行调用的,如支付宝快捷支付服务。


展开阅读全文

没有更多推荐了,返回首页