自己动手写android手机桌面-第一篇



开发自己的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

<?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>

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     (关键代码)
<?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.只需要要长按挂机键然后松开就能换回默认桌面.

不多说了.先去体现下吧.


你可能感兴趣的:(android,manager,layout,application,手机,encoding)