最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android?APP瘦身shrinkResources使用問題詳解

 更新時間:2022年11月11日 08:39:22   作者:Coolbreeze  
這篇文章主要為大家介紹了Android?APP瘦身shrinkResources使用問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

一、背景

對于縮小APk大小,除了開啟混淆

minifyEnabled true

還有使用

shrinkResources true

說下這兩者的區(qū)別

  • minifyEnabled 這個是用來開啟刪除無用代碼,比如沒有引用到的代碼
  • shrinkResources 用來開啟刪除無用資源,也就是沒有被引用的文件(經(jīng)過實測是drawable,layout,實際并不是徹底刪除,而是保留文件名,但是沒有內(nèi)容,等等),但是因為需要知道是否被引用所以需要配合mififyEnable使用,只有當(dāng)兩者都為true的時候才會起到真正的刪除無效代碼和無引用資源的目的

二、shrinkResources 作用

    android {
        buildTypes {
             debug {
                    minifyEnabled false
                    shrinkResources false
                }
                release {
                    minifyEnabled true
                    shrinkResources true
                }
        }
    }

shrinkResources = true作用是刪除無用的Resource,是與minifyEnabled 一起使用,minifyEnabled =true是開啟混淆。

三、實站演練

同樣的資源代碼

1.只有minififyEnable false 或者 minififyEnable false && shrinkResources true

APK大小為1.39M

資源文件和layout都存在且是有內(nèi)容的

2.只有minifyEnable true

866K

資源文件和layout都存在且是有內(nèi)容的

3.minifyEnable true && shrinkResources true

資源文件在但是沒有內(nèi)容大小都變成67字節(jié),layout文件內(nèi)容被清空

4.minifyEnable true && shrinkResources true 在res/raw/keep.xml(避免被誤刪除)寫了配置的

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
           tools:keep="@layout/activity_four,@drawable/no_reference_but_keep"/>

沒有在配置文件中聲明保存的文件沒有內(nèi)容,聲明保存的文件有內(nèi)容(資源文件和layout文件)

注意:string.xml中沒有被引用的怎么設(shè)置都不會被刪除

可以通過gradlew clean assembleRelease - info來獲得APK縮減資源的概覽

當(dāng)您壓縮資源時,Gradle Console 會顯示它從應(yīng)用軟件包中移除的資源的摘要。例如:

:android:shrinkDebugResources
Removed unused resources: Binary resource data reduced from 2570KB to 1711KB: Removed 33%
:android:validateDebugSigning

四、使用shrinkResources 出現(xiàn)的問題

android 使用了shrinkResources = true后,有時候會出現(xiàn)問題。 最近項目集成阿里百川的意見反饋,添加的安全圖片只是做驗證,項目里面未引用。debug模式自然是沒問題,因為shrinkResources 設(shè)置的是false,但在release 模式下,當(dāng)shrinkResources = true的時候,集成的意見反饋出問題。

解決辦法

新增res/raw/keep.xml文件,在里面把需要保留的資源文件列舉出

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:keep="@drawable/yw_1222"/>

如此問題就解決了。如果項目中需要keep多個資源可以tools:keep="@drawable/a,@layout/b,@layout/c"。意思就是在混淆的時候這些。

文末

移動端產(chǎn)品功能的逐漸增加,apk包會越來越臃腫,這里面會存在大量的情況。,APP 的體積也不可避免地呈現(xiàn)上升趨勢,如果不加以重視,幾個版本迭代下來,可能你的 APP 體積會達(dá)到用戶不能忍受的程度。比如冗余的代碼、無用的資源、未合理化處理的圖片等等。 所以Android APP瘦身是開發(fā)者必學(xué)的技術(shù)之一

以上就是Android APP瘦身shrinkResources使用問題詳解的詳細(xì)內(nèi)容,更多關(guān)于Android APP瘦身shrinkResources的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 解決Android模擬器端口被占用問題的辦法

    解決Android模擬器端口被占用問題的辦法

    這篇文章主要為大家分享了Android模擬器端口被占用問題的解決辦法,遇到Android模擬器端口被占用的時候,真的很頭疼,如何才能解決端口被占用的問題,下文為大家揭曉
    2015-12-12
  • Android編程實現(xiàn)只顯示圖片一部分的方法

    Android編程實現(xiàn)只顯示圖片一部分的方法

    這篇文章主要介紹了Android編程實現(xiàn)只顯示圖片一部分的方法,涉及Android針對圖片的局部顯示操作技巧,需要的朋友可以參考下
    2016-10-10
  • Android 判斷SIM卡屬于哪個移動運營商詳解及實例

    Android 判斷SIM卡屬于哪個移動運營商詳解及實例

    這篇文章主要介紹了Android 判斷SIM卡屬于哪個移動運營商詳解相關(guān)資料,并附實例代碼,具有一定參考價值,需要的朋友可以參考下
    2016-11-11
  • Android高級xml布局之輸入框EditText設(shè)計

    Android高級xml布局之輸入框EditText設(shè)計

    這篇文章主要為大家詳細(xì)介紹了Android高級xml布局之輸入框EditText設(shè)計,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android通過SOCKET下載文件的方法

    Android通過SOCKET下載文件的方法

    這篇文章主要介紹了Android通過SOCKET下載文件的方法,實例分析了Android使用Socket進(jìn)行文件傳輸?shù)募记?需要的朋友可以參考下
    2015-12-12
  • 更新Android Studio 3.0碰到的問題小結(jié)

    更新Android Studio 3.0碰到的問題小結(jié)

    本文是小編給大家分享的更新Android Studio 3.0碰到的問題小結(jié),非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-11-11
  • php 異步調(diào)用方法實現(xiàn)示例

    php 異步調(diào)用方法實現(xiàn)示例

    客戶端與服務(wù)器端是通過HTTP協(xié)議進(jìn)行連接通訊,客戶端發(fā)起請求,服務(wù)器端接收到請求后執(zhí)行處理,并返回處理結(jié)果
    2014-01-01
  • Android保存Activity狀態(tài)的方法

    Android保存Activity狀態(tài)的方法

    這篇文章主要介紹了Android保存Activity狀態(tài)的方法,結(jié)合實例形式較為詳細(xì)的分析了Android保存Activity狀態(tài)的原理、實現(xiàn)步驟及相關(guān)注意事項,需要的朋友可以參考下
    2016-08-08
  • Android日期選擇控件使用詳解

    Android日期選擇控件使用詳解

    這篇文章主要為大家詳細(xì)介紹了Android日期選擇控件的使用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • Kotlin基礎(chǔ)學(xué)習(xí)之循環(huán)和異常

    Kotlin基礎(chǔ)學(xué)習(xí)之循環(huán)和異常

    最近在學(xué)習(xí)kotlin,Kotlin 是一個基于 JVM 的新的編程語言,下面這篇文章主要給大家介紹了關(guān)于Kotlin基礎(chǔ)學(xué)習(xí)之循環(huán)和異常的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-12-12

最新評論

卓尼县| 邓州市| 德钦县| 吉安市| 右玉县| 额尔古纳市| 平邑县| 兰溪市| 商南县| 镇雄县| 吉水县| 库伦旗| 施甸县| 定州市| 鹤峰县| 临潭县| 上虞市| 白玉县| 彩票| 无棣县| 佳木斯市| 镇远县| 叶城县| 霍林郭勒市| 白银市| 淄博市| 阿瓦提县| 集贤县| 平潭县| 横峰县| 遵义市| 阜南县| 东宁县| 泰来县| 巴彦淖尔市| 陈巴尔虎旗| 达日县| 融水| 宁晋县| 南投市| 伊金霍洛旗|