如何在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反編譯吧。