[Android]桌面应用

        又是好久,唉……这次写简单的,桌面应用。
首先介绍桌面应用的概念:其实简单来说,就是当我们点home键时打开的应用,其实在android系统启动之后的应用本身就是一个android应用,Google提供的android源码里给这个应用起名launcher1/launcher2,我拿到的android开发板的桌面应用是launcher3(应该是开发板供应商修改后的应用,我是通过adb shell进入/system/app目录下查看的)。
接下来,如何把我们的应用变成桌面应用:这个需要我们的AndroidManifest.xml中找到启动Activity,然后在加入两行代码,分别是 <category android:name="android.intent.category.HOME" /><category android:name="android.intent.category.DEFAULT" />,完整的代码如下所示:
 
 
<activity
android:name=".MainActivity"
android:theme="@style/AppTheme">
<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" />
</intent-filter>
</activity>
加入之后我们再次按下home键时,就可以看到系统让我们选择启动哪个桌面应用。
那么问题就来了,我不想用系统自带的桌面应用怎么办:方法一:卸载原来的桌面应用,这样就只有你的桌面应用,自然不会启动系统自带的桌面应用。方法二:在选择桌面应用时,把自己的桌面应用设置为始终启动。方法三:修改framework层代码。其中方法二操作起来最简单,方法一操作起来复杂一些,需要adb shell然后修改/system文件夹的权限,接着进入/system/app,最后rm桌面应用的apk。方法三最复杂,但是最彻底(而且我也不会,哈哈)。方法一和方法三有一些问题:假如你的桌面应用因为某些问题出现无限崩溃的时候(例如我的app里假如出现连接不到某个设备的时候),那只能刷固件了,我还没想到其它解决方案,这真是一个悲伤的故事……

猜你喜欢

转载自blog.csdn.net/woaily1346/article/details/80792590