我对使用所有谷歌指南减少apk大小的问题感到震惊。我还查看了StackOverflow上发布的许多答案,但没有人帮我减小apk的大小。我不知道是什么问题?我使用了shrinkResource,改编,但这些并没有缩短我的问题 我的Gradle文件是:
buildscript {
repositories {
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
repositories {
maven { url 'https://maven.fabric.io/public' }
google()
}
apply plugin: 'io.fabric'
android {
/* signingConfigs {
config {
keyAlias 'mykey'
keyPassword 'mykeyPassword'
storeFile file('D:/Brijesh/Project/All Project Keystore/MySkoda/mykey.jks')
storePassword 'mykeyPassword'
}
}*/
signingConfigs {
config {
keyAlias 'mykey'
keyPassword 'mykeyPassword'
storeFile file('D:/ajit/other/ex/Skoda/mykey.jks')
storePassword 'mykeyPassword'
}
}
compileSdkVersion 25
buildToolsVersion '26.0.2'
defaultConfig {
applicationId "com.skodaautoindia.myskoda"
minSdkVersion 17
targetSdkVersion 25
versionCode 8
versionName "1.1.0.5"
multiDexEnabled true
/* signingConfig signingConfigs.config*/
signingConfig signingConfigs.config
}
repositories {
mavenCentral()
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
/* release {
minifyEnabled false
signingConfig signingConfigs.config
}*/
}
aaptOptions {
cruncherEnabled = false
}
useLibrary 'org.apache.http.legacy'
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile('com.crashlytics.sdk.android:crashlytics:2.6.2@aar') {
transitive = true;
}
compile project(':photo-crop-library')
compile 'com.facebook.android:facebook-android-sdk:4.11.0'
compile 'com.android.support:design:25.4.0'
compile 'com.android.support:customtabs:25.4.0'
compile 'com.android.support:support-v4:25.4.0'
compile 'com.android.support:appcompat-v7:25.4.0'
compile 'com.google.code.gson:gson:2.5'
compile 'com.mcxiaoke.volley:library:1.0.19'
compile 'com.android.support:cardview-v7:25.4.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'cz.msebera.android:httpclient:4.4.1.1'
compile 'com.google.android.gms:play-services-plus:11.0.2'
compile 'com.google.android.gms:play-services-auth:11.0.2'
compile 'com.google.android.gms:play-services-maps:11.0.2'
compile 'com.google.android.gms:play-services-location:11.0.2'
compile 'com.google.firebase:firebase-core:11.0.2'
compile 'com.google.firebase:firebase-messaging:11.0.2'
compile 'com.weiwangcn.betterspinner:library-material:1.1.0'
compile 'com.github.bumptech.glide:glide:3.5.2'
compile 'com.intuit.sdp:sdp-android:1.0.3'
compile 'com.android.support:support-vector-drawable:25.4.0'
compile 'com.albinmathew:photo-crop-library:1.0.3'
compile 'com.android.support:multidex:1.0.1'
compile 'de.hdodenhof:circleimageview:2.2.0'
compile 'com.android.support.constraint:constraint-layout:1.1.0-beta1'
}
apply plugin: 'com.google.gms.google-services'
非常感谢您在这件事上的时间和帮助。
答案 0 :(得分:1)
这对你来说很有用。
使用ProGaurd
try
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}}
删除应用程序中的所有调试信息(Log.i()等语句)。它们可以包装在仅在测试应用程序时启用的条件。
使用推荐的媒体格式 图片:PNG或JPG 音频:AAC 视频:H264 AVC
使用OptiPNG或PNGCrush压缩图像
使用此工具查找未使用的资源并将其删除。
避免使用多个资源来实现相同的功能。资源不仅限于图像,还可以扩展到API。有时,使用提供多个结果的单一API比使用两个或三个不同的API更有效。重复的字符串和资产也是对mermory的浪费。
另请参阅此链接:this
答案 1 :(得分:0)
APK文件包含一个ZIP存档,其中包含构成应用的所有文件。这些文件包括Java类文件,资源文件和包含已编译资源的文件。
请重新检查您的资产和资源文件。 虽然您不需要将栅格化资源导出到每个密度。
答案 2 :(得分:0)
build.gradle
文件exclude {}
块
醇>
示例:
compile ("com.xxx:xxx-commons:1.+") {
exclude group: 'junit', module: 'junit'
}
答案 3 :(得分:0)
现在,您可以在Android Studio 3.0+中分析您的APK文件了解"构建 - >分析APK ..."
在那里,您将看到有关APK的详细信息。