开发自己的android桌面,有这个想法是去年一个项目(移动公司的变态项目,需要定制android机器,将一对移动业务定制到里面去)需要定制android桌面,当初的做法是直接改原版的Launcher.apk源码,然后再Linux下编译生成Launcher.apk然后刷到固件中去.实现桌面定制,让用户无法删除.至于为什么,你懂的....
废话不多说了.我们现在要做的不是改原生的Launcher.apk,而是做个相当于普通apk能删除与安装的桌面,现在市面上有的如:91的熊猫桌面.还有其他一些在开发的就不多说了.
先什么都不说来段demo最实际,一切从最原始的兴趣驱动,有了小成就才更有动力来了解与学习launcher,需要刨根问底的同学们,自己google先.
Manager.java
package com.jaryou;
import com.nebulalauncher.R;
import android.app.Activity;
import android.os.Bundle;
public class Manager extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Launcher.java
- package com.jaryou.launcher;
- import com.nebulalauncher.R;
- import android.app.Activity;
- import android.os.Bundle;
- public class Launcher extends Activity{
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.launcher);
- }
- }
launcher.xml
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
AndroidManifest.xml (关键代码)
view plainprint?
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.nebulalauncher" android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<!-- 作为桌面设置的Activity -->
<activity android:name=".Manager" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 作为桌面Activity -->
<activity android:name="com.jaryou.launcher.Launcher">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!-- 关键部分 开始-->
<category android:name="android.intent.category.HOME"/>
<category android:name="android.intent.category.DEFAULT" />
<!-- 关键部分 结束-->
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
</manifest>
新建个android的项目,将上面的代码贴进去,然后运行.
ok,然后再长按 挂机键 出现桌面选择提示
1.启动器(默认launcher)
2. 你的应用名称
这时候选择你的应用,会发现桌面变成了你的刚弄的这个demo了.
如果需要变回原来的launcher.只需要要长按挂机键然后松开就能换回默认桌面.
不多说了.先去体现下吧.