自己动手写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
  1. package com.jaryou.launcher;  
  2.   
  3. import com.nebulalauncher.R;  
  4.   
  5. import android.app.Activity;  
  6. import android.os.Bundle;  
  7.   
  8. public class Launcher extends Activity{  
  9.     /** Called when the activity is first created. */  
  10.     @Override  
  11.     public void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState);  
  13.         setContentView(R.layout.launcher);  
  14.     }  
  15. }  

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值