Android的桌面(Launcher)的定制

     如何在Android的启动桌面上预设一些你需要的元素呢?下面为你解答

1. 如何让系统以动态桌面的方式启动?

修改位置在frameworks/base/core/res/res/values目录找到Config.xml文件,找到下面这一行

<string name="default_wallpaper_component">null</string>  

将其修改为对应的live wallpaper的启动component name即可,而component name的形式就是下面这样的package name/class name,这里的class name是这个动态壁纸的service的name,而且记得要用全名哦,用的service的name给的是相对名字,如.xxxx,这种就需要在前面加上package name,而至于如何查看一个动态壁纸的package name和service name就需要用DoApk的反编译工具来将这个APK反编译,从反编译后得到的AndroidManifest.xml里面去查找了,如要把默认壁纸设置为2.1自带的galaxy,这样写即可:

<string name="default_wallpaper_component">com.android.wallpaper/com.android.wallpaper.galaxy.GalaxyWallpaper

</string>

需要注意的是:静态的图片壁纸和live wallpaper是两个系统,加载的时候是完全两套机制,静态图片通过launcher里面的一个xml文件配置来管理系统默认静态壁纸,live wallpaper则是通过intent机制向系统搜寻所有匹配Activity,所以,这里的默认值为null,而不是那个系统默认静态壁纸的地址,系统是读config.xml文件的设置,若为null才继续查找静态壁纸配置内容.

如果只需要修改动态壁纸,替换frameworks/base/core/res/res/drawable/default_wallpaper.jpg即可,或者在源码中修改对应default_wallpaper地址.

 

2. 如何在Launcher上添加默认的ShortCut?

修改的位置在Launcher的default_workspace.xml中

先给个例子:

<favorite

launcher:packageName="com.android.camera"

    launcher:className="com.android.camera.Camera"

    launcher:screen="2"    <!--在laucnher上放在第几屏的位置,假如有5个屏的话,为0-4,中间的屏为2-->

    launcher:x="0"    <!--在Launcher上单元格的X位置-->

    launcher:y="4" />    <!--在Launcher上单元格的Y位置-->

 

注意:就仿照上面的例子依样画葫芦,不过记得className要用全名哦,有的AndroidManifest.xml中给的是相对的名字。

 

3. 如何在Launcher上添加默认的Widget?

修改的位置在Launcher的default_workspace.xml中:

先给个例子

<appwidget

    launcher:packageName="com.google.android.apps.genie.geniewidget"

launcher:className="com.google.android.apps.genie.geniewidget.miniwidget.MiniWidgetProvider"

    launcher:screen="4"

    launcher:x="0"     <!--在Launcher上单元格的X位置-->

    launcher:y="0"     <!--在Launcher上单元格的Y位置-->

    launcher:spanX="5"     <!--在Launcher上X方向的跨度大小-->

    launcher:spanY="2" />     <!--在Launcher上Y方向的跨度大小-->

 

注意:classname使用的是你需要的reciver的name,这个name也是在AndroidManifest.xml中查找,使用全名哦,要得到AndroidManifest.xml的内容,那就是使用DoApk反编译吧。

 

你可能感兴趣的:(android,String,service,null,Class,反编译工具)