检查下面的 gradle 配置。
android {
signingConfigs {
config {
keyAlias 'xxx'
keyPassword 'xxx'
storeFile file('/home/xxx/AndroidStudioProjects/key/key.jks')
storePassword 'xxx'
}
}
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "app.examinations.com"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
debuggable false
signingConfig signingConfigs.config
}
debug {
signingConfig signingConfigs.config
}
}
}
repositories {
maven { url "https://jitpack.io" }
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support'
})
compile 'com.android.support:appcompat-v7:25.3.1'
//Gson Dependency
compile 'com.google.code.gson:gson:2.8.0'
//Design Layout
compile 'com.android.support:design:25.3.1'
//chart
compile 'com.diogobernardino:williamchart:2.5.0'
//view
compile 'com.android.support:recyclerview-v7:25.3.1'
compile 'com.android.support:cardview-v7:25.3.1'
//fab
compile 'com.github.clans:fab:1.6.4'
//expandable view
compile 'com.github.aakira:expandable-layout:1.6.0@aar'
//tables
compile 'de.codecrafters.tableview:tableview:2.6.0'
//Circular ImageView
compile 'com.mikhaellopez:circularimageview:3.0.2'
//Download Images with Picasso
compile 'com.squareup.picasso:picasso:2.5.2'
//Google Services
compile 'com.google.firebase:firebase-messaging:11.0.2'
compile 'com.google.android.gms:play-services-auth:11.0.2'
compile 'com.google.firebase:firebase-core:11.0.2'
//Crop Image
compile 'com.github.yalantis:ucrop:2.2.1'
//Pdf Viewer
compile 'com.github.barteksc:android-pdf-viewer:2.7.0-beta'
//Fab reveal layout
compile 'konifar:fab-transformation:1.0.0'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
我使用了proguard并且资源缩减它仍然是25mb(大约)。
这是 proguard 配置
-keepattributes SourceFile,LineNumberTable
-keep class com.parse.*{ *; }
-dontwarn com.parse.**
-dontwarn okio.**
-dontwarn com.squareup.picasso.**
-keepclasseswithmembernames class * {
native <methods>;
}
-assumenosideeffects class android.util.Log { *; }
检查此 Apk分析器图像
查询
1)这个lib文件夹是否包含我的所有库?为什么它太大了?
2)有没有办法只使用我使用proguard从库中使用的类?或者我应该使用更少的库来优化大小?
答案 0 :(得分:3)
这里有一些关于减少Apk大小的有用提示:
ProGuard
shrinkResources
SplitApk
Vector Drawables
resConfigs
debugCompile
WebP
文件格式保存图片。您可以从Google的官方doc中找到更多信息 关于减少Apk大小,这是一个有用的Medium Article。
答案 1 :(得分:1)
1)lib文件夹包含您的库。它非常大,因为你使用了很多库。
2)您也应该能够优化库,但有些已经过优化
我不知道的是为什么你说应用程序太大了。 Google Play允许APK高达100 MB。
缩小尺寸的最佳方法是减小图像尺寸。看起来你没有任何你可以削减的依赖关系(谷歌播放API被分成几个实例,如果你导入整个东西但只使用谷歌PLay游戏,你可以删除依赖并且只导入Play游戏。这与你的情况无关,这是一个例子。
答案 2 :(得分:1)
你的问题是你使用的是很多库,最糟糕的是:
"com.github.barteksc:android-pdf-viewer:2.7.0-beta"
这样的图书馆很难缩小,虽然在其他答案中有很多方法可以减少APK的大小,但这个图书馆是您正在寻找的主要图书馆。