修改應(yīng)用圖標(biāo)失敗解決方法

Android應(yīng)用圖標(biāo)修改后真機顯示不更新的問題

這個問題當(dāng)時我是在網(wǎng)上看了很多博客,大多是說卸載應(yīng)用、重啟手機等,但是這些方法只是適用于部分手機,而且現(xiàn)在的技術(shù)博客太千篇一律,互相抄襲,后來還是自己試驗出了解決方法:


百度下發(fā)現(xiàn)MIUI等也有類似的問題,基本確定是Launcher對應(yīng)用圖標(biāo)建立了緩存,最直接的破除緩存的方法就是修改應(yīng)用的Package Name,換包名后重裝圖標(biāo)就會顯示正確,明顯就是沒有緩存的特征!然而,應(yīng)用發(fā)布過后一般是不會更換包名的,所以這個方法實際應(yīng)用意義不大,僅僅是確認(rèn)了這個圖標(biāo)緩存的機制。

這之后又查到了一些解決方法,如刪除 /data/system/customized_icons 路徑下的響應(yīng)圖標(biāo)(這個需要root,且在5.0上沒有這個路徑,估計是Pre Lollipop用的),再如殺掉Launcher的進(jìn)程,強制其重啟刷新緩存(這個貌似不科學(xué),因為重啟Launcher的話應(yīng)該和重啟系統(tǒng)性質(zhì)是一樣的,但是我試過重啟機器后圖標(biāo)依然沒有刷新,再有就是CM上也沒找到明顯的Launcher進(jìn)程,只有個systemui看起來比較像,不過也不敢強制結(jié)束,怕玩壞啊,哈哈?。?,這之后又自己嘗試了下別的可能作為緩存key的要素,如改VersionCode,改VersionName,同時改VersionCode和VersionName,改res下的圖標(biāo)文件名等,均無效!

這中間還穿插個小注意:以前一直認(rèn)為Android應(yīng)用的圖標(biāo)就放在各種Drawable下就好了,但是后來發(fā)現(xiàn)Android Studio生成的項目中圖標(biāo)ic_launcher.png是放在各種叫mipmap的res子資源文件夾下,于是查了下官方文檔,發(fā)現(xiàn)了這里:http://developer.android.com/intl/zh-cn/tools/projects/index.html#mipmap,簡單說就是官方建議將作為圖標(biāo)的res資源放入mipmap文件夾,理由是drawable中各種dpi的版本有可能會被系統(tǒng)優(yōu)化掉,比如設(shè)備是xxhdpi的,那么ldpi、mdpi、hdpi等無關(guān)的會被去掉,這就導(dǎo)致Launcher或其它位置在顯示應(yīng)用的圖標(biāo)時可能用到不合適的分辨率版本,導(dǎo)致顯示失真變渣。解決方法就是將圖標(biāo)文件歸入mipmap文件夾中,這樣可以保證各個分辨率版本不會被dpi無關(guān)優(yōu)化掉。

發(fā)現(xiàn)上面提到的這個小問題時,還以為可以用mipmap的方式來保證圖標(biāo)修改后的更新,不過結(jié)果依然是:不管用!


以上如果沒有解決問題,那么就說明你的應(yīng)用圖標(biāo)被緩存了,但是改包名涉及到的地方比較多,SO :

可以通過更換主題的方式強制讓手機刷新所有App的Icon,于是恍然大悟,真是Good Idea啊,打開手機的主題管理,換了一個,然后馬上又換了回來,切回應(yīng)用圖標(biāo)列表,小等了一下,圖標(biāo)果然刷新了,而且還有一些別的應(yīng)用圖標(biāo)也變了(百度貼吧等),感覺這就是個主題圖標(biāo)緩存機制設(shè)計的坑!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,007評論 25 709
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點贊按鈕進(jìn)度條TabLayout圖標(biāo)下拉刷新...
    皇小弟閱讀 47,151評論 22 665
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,869評論 2 45
  • 我輕輕地觸摸 你那深邃碩大的眼睛 用心呵護(hù)的美麗 天空飄逸的流云飛揚 在昏暗的陪襯下轉(zhuǎn)為絲絲細(xì)雨滴滴入心坎 無法言...
    Wang_無處安放的青春閱讀 247評論 0 0
  • 小時候,過年是最快樂的事??梢苑偶伲梢源┬乱路?,可以各種玩。 但是,對于22歲的我們來說,春節(jié)實在不知道要怎么過...
    不會表達(dá)的笨女孩閱讀 250評論 0 0

友情鏈接更多精彩內(nèi)容