APK瘦身,就是減少APK的體積。看看現在的apk,有些功能很簡單的apk,大小居然過百兆。在看看人家《王者榮耀》,這么好玩精致的游戲才三百多兆。所以APK瘦身的知識還是要學習一下的。這篇文章也不說太多,就說一下語言包瘦身。
王者.png
大家都知道了,Android的應用是支持多種語言的,理論上,語言切到哪個國家,應用就應該顯示那個國家的語言。下面是Android語言資源目錄下多國語言的文件夾。
語言文件夾.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'
}
來個效果給你們看下,現在我的工程里面有兩種語言包,中文和英文
語言包.png
我的手機在中文語言設置的情況下,配置與不配置兩種情況下安裝apk后打開顯示是如下
配置前.png
配置后.png
各位神人看到沒有,沒有配置resConfigs "en"的情況下,中文會顯示。但配置之后只能顯示英文了。說明成功把中文語言包踢出apk了。哈哈哈哈!!太簡單了。