1. 程式人生 > >如何修改Android系統內建的桌面圖示

如何修改Android系統內建的桌面圖示

/packages/apps/Launcher/res/xml/default_workspace.xml中記錄了系統初始化或者恢復出廠設定時桌面上圖示的排列。Launcher程式第一次執行完畢以後,會在/data/data/com.android.launcher/databases/launcher.db中建立記錄,裡面有所有當前的桌面圖示。以後每次啟動只會從這裡讀取桌面圖示。

下面簡單分析一下default_workspace.xml:

default_workspace.xml中,支援的標籤有:

favorite:應用程式快捷方式。

shortcut:連結,如網址,本地磁碟路徑等。

search:搜尋框。

clock:桌面上的鐘表Widget

支援的屬性有:

launcher:title,圖示下面的文字,目前只支援引用,不能直接書寫字串。

launcher:icon,圖示引用。

launcher:uri,連結地址。

launcher:packageName,應用程式的包名。

launcher:className,應用程式的啟動類名。

launcher:screen,圖示所在的螢幕編號。

launcher:x,圖示在橫向排列上的序號。

launcher:y,圖示在縱向排列上的序號。

LauncherProvider.java裡面的loadFavorites方法負責解析。

應用程式的寫法,default_workspace.xml中有很多,對連結的寫法卻沒有,我分析了一下它的解析程式,反向做出了連結快捷方式的寫法,已經驗證成功,希望可以幫到大家。

<shortcut

        launcher:title="@string/aaa"

        launcher:icon="@drawable/aaa"

        launcher:uri="http://www.aaa.com"

        launcher:screen="1"

        launcher:x="0"

        launcher:y="3" />

連結的圖示內容和文字內容是從default_workspace.xml中獲取到的。

應用程式的圖示內容和圖示下面的文字內容都是從PackageManager中獲取到的。

如果Launcher啟動時,應用程式的包名和類名因為某種原因沒有在PackageManager中找到,桌面就不會顯示它的圖示。如果類名和包名找到了,但是圖示沒有找到,會顯示Android預設的小機器人圖示。

所以,要在default_workspace.xml中加入錠接時,只要寫上title,icon,uri,screen,x,y這幾個屬性就可以了。

而要加入應用程式時,只要寫上packageName,className,screen,x,y這幾個屬性就可以了。