如何在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反编译吧。