У меня есть приложение, которые ссылаются на ~ 100K методы, с мин Sdk = 16Какова хорошая стратегия при работе с Proguard, MultiDex, Testing и Product Flavors?
здесь 2 вариант для сборки:
- Proguard термоусадочной эту кучу методов только 44K методов
- Использование нескольких Dex
Теперь у меня есть некоторые общие случаи использования:
- Запуск и отладка на эмуляторе и устройств
- Это требует, чтобы быть как можно быстрее
- Do тесты (интеграции и UI)
- Это требует, чтобы запустить (у меня есть некоторые проблемы работает Эспрессо с MultiDex)
- Сделать Prod APK
- Это требует, чтобы быть надежным и усаживается как можно
У вас есть ребята, некоторые recommandation о стратегии сборки?
3/Prod
- Используйте Proguard, чтобы уменьшить размер APK
- Использование Proguard запутать
- Не используйте Multidex как большинство, как это возможно (это может не удалось)
2/Испытание
- Использовать minSdkVersion 21 (я прочитал, что начиная с 21 разрешить предварительную дезинфекцию, что экономит время)
- ???
1/отладки
- Использование minSdkVersion 21 (я прочитал, что, начиная с 21 позволяют предварительно Dexing, что экономит время)
- ???
Вот файл Gradle:
productFlavors {
dev {
minSdkVersion 21
multiDexEnabled ???
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
prod {
// The actual minSdkVersion for the application.
minSdkVersion ANDROID_BUILD_MIN_SDK_VERSION
multiDexEnabled false
}
}
defaultConfig {
applicationId "xxxx"
targetSdkVersion ANDROID_BUILD_TARGET_SDK_VERSION
minSdkVersion ANDROID_BUILD_MIN_SDK_VERSION
versionCode ANDROID_BUILD_VERSION_CODE
versionName ANDROID_BUILD_APP_VERSION_NAME
}
buildTypes {
release {
debuggable false
ext.enableCrashlytics = true
renderscriptOptimLevel 3
signingConfig android.signingConfigs.release
zipAlignEnabled true
minifyEnabled true
// shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
debuggable true
renderscriptOptimLevel 3
applicationIdSuffix ".debug"
versionNameSuffix "debug"
minifyEnabled false
}
}
возможно добавление validation.initWith (buildTypes.debug) для первой открытой точки (для проверки) – Anthony
Я вижу, что «используйте правила оптимизации Proguard только для выпуска getDefaultProguardFile (« proguard-android-optimize.txt »), для тестирования и отладки просто используйте getDefaultProguardFile ('proguard- android.txt ') ". Почему мы не запускаем тесты с оптимизированным кодом? Я провел тесты на моем коде с обфускацией, но я столкнулся с проблемами с оптимизированным кодом. –