我有一个apk文件,但它的文件大小为22.4MB。这太大了,所以我需要在Android中减小或压缩apk文件。减少和压缩apk文件的正确方式是什么?
我有一个apk文件,但它的文件大小为22.4MB。这太大了,所以我需要在Android中减小或压缩apk文件。减少和压缩apk文件的正确方式是什么?
使用ProGuard
ProGuard是一个免费的Java类文件缩小程序、优化器、混淆器和预验证器。它检测并删除未使用的类、字段、方法和属性。它优化字节码并删除未使用的指令。它使用短而无意义的名称重命名剩余的类、字段和方法。最后,它为Java 6或更高版本或Java Micro Edition预验证处理过的代码。
如果您使用Eclipse,则默认配置文件将自动添加到您的项目中。但是,这个默认配置只涵盖一般情况,因此您很可能需要根据自己的需求进行编辑。
删除未使用的资源:https://code.google.com/p/android-unused-resources/
你可以从Android Studio中分析APK。这会显示各个文件以及它们的目录和大小,包括绝对大小和相对于整个APK的大小:
只需将其从项目中删除即可。
矢量Drawable为所有分辨率提供一个清晰的图像,大大减小了图形的大小。通常,您可以将它们用于图标等,但不适用于照片。非矢量化图像可以使用trimage进行缩小。
将以下内容添加到app/build.gradle
中,以启用Proguard从项目中减少未使用的类:
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
Example:
D:\android-sdk\android-sdk\tools>zipalign -f -v 4 "C:\Users\Joisar\Desktop\project_name\appname_signed.apk" "C:\Users\Joisar\Desktop\project_name\appname__zipaligned.apk"
zipalign -c -v 4 "C:\Users\Joisar\Desktop\project_name\appname_signed.apk"
使用 Proguard
build.gradle
android {
...
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
缩小资源
build.gradle
android {
...
buildTypes {
release {
shrinkResources true
minifyEnabled true
...
}
}
}