У меня есть собственная пользовательская библиотека, которую я использую для поддержки методов и классов, которые я хочу использовать в нескольких проектах. Он не скомпилирован в файл .jar - он настроен как com.android.library и находится в его собственной папке.Библиотека делает мой Android APK слишком большим
Одно из моих приложений очень мало - менее 500 тыс. Когда я добавил эту библиотеку, она взлетела до 1350 тысяч. Несмотря на то, что он по-прежнему мал, это проблема для этого конкретного приложения, которое я решил сделать как можно меньше.
Папка src для самого приложения - 77k. Папка src для проекта библиотеки - 112k. Файл .dex полученного apk имеет ровно 1 Мб. Как это возможно?
В библиотечном проекте делается ссылка play-services-vision. Однако в этом приложении он не упоминается, и я считаю, что Proguard следует его отключать.
В окне «Варианты сборки» как приложение, так и библиотека установлены в «release».
моего приложения в build.gradle файл:
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
//**CONFIG STUFF**//
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled false
applicationIdSuffix '.debug'
versionNameSuffix '.debug'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
compile project(':farmsoftlibs')
}
Примечание: AppCompat ссылка также в старой версии моего приложения, которое было 500к, так что я знаю, что это не является главным виновником.
build.gradleМои библиотеки:
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services-vision:7.8.0'
}
Так что мои вопросы, которые я думаю, мог бы решить эту загадку являются:
- Как мой APK больше, чем мой полный Java & разреш папки для приложения и библиотеки вместе, тем более что я использую Proguard?
- Есть ли что-то, что градлеет в моем проекте библиотеки, что делает мой apk больше?
- Как я могу убедиться, что в apk загружены только методы и классы библиотеки, которые использует мое приложение?
Дайте мне знать, если другой файл относится к ответом на этот вопрос. Благодаря!
Вы используете некоторые библиотеки поддержки. Это нормально, и в любом случае 1М не слишком большой! –