標籤:檔案 zip 許可權 view hvm term res 檔案夾 這一
先說下我的思路:
luancher3裡面更換表徵圖的邏輯例如以下:
先從APP資源套件裡查詢--資料庫查詢--其它地方查詢ICON
因此,我們僅僅須要把 從資料庫擷取ICON 代碼提前到 從APP資源套件提取就可以。
再來我們外部APP僅僅需對Launcher.db的 ICON欄位進行 加入表徵圖。就可以。
再通知案頭去更新表徵圖。就可以完畢整個案頭的 表徵圖自己主動更換的效果。
這樣做的長處:
代碼改動量少,主題的APP無須跟Launcher3這個案頭APP有不論什麼關聯。相當於外部應用。
(前面第8我已經略微簡介了下launcher3的內容提供者,須要寫入2個許可權)
詳細思路比較簡單清晰。而且實現了。
有須要的能夠留言,我能夠給demo哈。
讀取button:
通過內容提供者對Launcher.db資料庫進行讀取資訊並解析成List<shotCupInfo>對象,方便後面進行遍曆更新表徵圖到資料庫。
更新button:點擊後。將依據前面擷取到的APP的ID進行指定更新Launcher.db的 ICON資料庫。在這裡我們會將SD卡裡面ICON轉為位元組數組,進行儲存到資料庫。
應用主題:通知案頭去重新整理。(這一步事實上不用做的,由於當你進行第二步,更新操作的時候,訪問資料庫時候,案頭的資料庫注冊了觀察者監聽資料庫發生改變。則進行workspace表徵圖的更新。)
主題來源:MIUI佈景主題資源包解壓而來:
資源結構檔案夾例如以下
手機SD卡根資料夾:_theme------------------以下包括各個ZIP壓縮格式的主題包。
當我們啟動主題APP的時候,會自己主動檢測_theme該檔案夾下ZIP檔案,假設有存在就進行ZIP解壓,並刪除原來的ZIP檔案。在這裡我們進行了資源的解壓。
解壓檔案夾例如以下:
icon:放表徵圖資源:檔案夾結構為icon_res_drawble-xhdmi
wallpaper:放的是壁紙2張。一張為鎖屏,一張為預設主介面壁紙
preview:放的主題的。便於主題市場,進行擷取資源顯示給使用者看。
(以上主題包資源均來自MIUI主題的檔案夾結構。)
demo點擊應用主題後:更換表徵圖示範:
因為僅僅是做測試,全部表徵圖也僅僅是隨便替換幾個而已。功能實現了。後面的事情就好了。
修修補補的事情了。
(9)launcher3 之 外部 更換主題Theme APP demo 實現原理以及demo