android 桌面快捷方式、窗口小部件、文件夾、書籤 launcher、appwidget、shortcut、folder、bookmark

1. 桌面上favorites介紹


上圖的launcher桌面中間有四個元素,上面是一個時鐘的窗口小部件,下面一排分別是一個Camera,一個Amazon書籤,一個文件夾(文件夾中是SettingsClock)。

在代碼中它們都是favorites分別稱爲:APPWIDGET、APPLICATION、SHORTCUT、FOLDER。

2. 數據庫查看

favorites保存在數據庫中。

導出數據庫文件 data/data/com.android.launcher/databases/launcher.db

favorites表的結構


表中的數據,對應圖1


intent的特寫


3. 數據庫中favorites表簡介

· _id                        
· title             顯示的名字
· intent          
· container         容器:
                       CONTAINER_DESKTOP=-100,默認值;
                       CONTAINER_HOTSEAT=-101,常駐在屏幕下方,手機上的最下面一行,平板上沒有,所以圖3中的Brower在圖1中沒有;
                       圖3中的Clock,Settings的container是6,表示他們屬於Folder。
· screen           所屬的屏幕。
· cellX            x軸上的位置。
· cellY            y軸上的位置。
· spanX            寬度,默認爲1。
· spanY            高度,默認爲1。
· itemType         類型:
                       ITEM_TYPE_APPLICATION = 0; 
                       ITEM_TYPE_SHORTCUT = 1;
                       ITEM_TYPE_FOLDER = 2;
                       ITEM_TYPE_LIVE_FOLDER = 3;
                       ITEM_TYPE_APPWIDGET = 4;
· appWidgetId
· isShortcut
· iconType
· iconPackage
· iconResource
· icon
· uri
· displayMode

詳細的可以查看Launcher2\src\com\android\launcher2\LauncherSettings.java

4. 給桌面添加默認的favorites 

launcher上的默認的favorite是在Launcher2\res\xml\default_workspace.xml中定義的。(Launcher2\res\xml-sw600dp\default_workspace.xml、Launcher2\res\xml-sw720dp\default_workspace.xml)

<?xml version="1.0" encoding="utf-8"?>
<favorites xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher" >


    <appwidget
        launcher:className="com.android.alarmclock.AnalogAppWidgetProvider"
        launcher:packageName="com.android.deskclock"
        launcher:screen="4"
        launcher:spanX="2"
        launcher:spanY="2"
        launcher:x="2"
        launcher:y="0" />


    <favorite
        launcher:className="com.android.camera.CameraLauncher"
        launcher:packageName="com.android.gallery3d"
        launcher:screen="4"
        launcher:x="1"
        launcher:y="3" />


    <shortcut
        launcher:icon="@drawable/ic_home_voice_search_holo"
        launcher:screen="4"
        launcher:title="@string/application_name"
        launcher:uri="https://www.amazon.com/gp/feature.html?ie=UTF8&amp;docId=1000626391"
        launcher:x="2"
        launcher:y="3" />


    <folder
        launcher:icon="@drawable/ic_launcher_home"
        launcher:screen="4"
        launcher:title="@string/folder_name_format"
        launcher:x="3"
        launcher:y="3" >


        <favorite
            launcher:className="com.android.settings.Settings"
            launcher:packageName="com.android.settings" />


        <favorite
            launcher:className="com.android.deskclock.DeskClock"
            launcher:packageName="com.android.deskclock" />
    </folder>


    <!-- Hotseat (We use the screen as the position of the item in the hotseat) -->


    <favorite
        launcher:className="com.android.browser.BrowserActivity"
        launcher:container="-101"
        launcher:packageName="com.android.browser"
        launcher:screen="4"
        launcher:x="4"
        launcher:y="0" />


</favorites>

5. 工具附件及介紹

自己寫的一個程序,幫助生成default_workspace.xml,可惜還不支持shortcutfolder

下載

之前在Launcher上添加應用或者窗口小部件,需要找到包名和類名,以及位置等,然後手動在代碼中添加。現在只需要在桌面上拖動添加,然後運行該程序,就會生成當前桌面應用和窗口小部件的佈局文件,保存在/mnt/sdcard/default_workspace.xml中。將該文件直接替換packages\apps\Launcher2\res\xml-sw720dp\default_workspace.xml即可。

按後退鍵還有其他的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章