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