APK瘦身记之语言瘦身

APK瘦身,就是减少APK的体积。看看现在的apk,有些功能很简单的apk,大小居然过百兆。在看看人家《王者荣耀》,这么好玩精致的游戏才三百多兆。所以APK瘦身的知识还是要学习一下的。这篇文章也不说太多,就说一下语言包瘦身。

APK瘦身记之语言瘦身_第1张图片
王者.png

大家都知道了,Android的应用是支持多种语言的,理论上,语言切到哪个国家,应用就应该显示那个国家的语言。下面是Android语言资源目录下多国语言的文件夹。

APK瘦身记之语言瘦身_第2张图片
语言文件夹.png

看到啦,这么多种语言,肯定很占体积。现在我很极端,为了减少apk大小,我就只做英语。应该怎么办?
你肯定说,妈蛋,直接把文件夹通通通通删掉,不就行了吗?尴尬,行是行,但这样一点都不酷,而且万一项目经理抽风说,来来,我现在想加个法克语,那不是又要把语言文件夹拷进去,麻烦死了。

现在提供一种方法,只需要加一句配置就可以控制将什么语言包编进apk。方法就是在build.gradle中增加一句

resConfigs "en"

完整的build.gradle文件,上面哪一句找到了吗?就是加在defaultConfig 里面啦。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    defaultConfig {
        applicationId "com.example.rubbishdemo"
        minSdkVersion 22
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        resConfigs "en"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:23.4.0'
    testCompile 'junit:junit:4.12'
}

来个效果给你们看下,现在我的工程里面有两种语言包,中文和英文

APK瘦身记之语言瘦身_第3张图片
语言包.png

我的手机在中文语言设置的情况下,配置与不配置两种情况下安装apk后打开显示是如下

APK瘦身记之语言瘦身_第4张图片
配置前.png
APK瘦身记之语言瘦身_第5张图片
配置后.png

各位神人看到没有,没有配置resConfigs "en"的情况下,中文会显示。但配置之后只能显示英文了。说明成功把中文语言包踢出apk了。哈哈哈哈!!太简单了。

你可能感兴趣的:(APK瘦身记之语言瘦身)