Я нацеливаю свое (первое) приложение на API23 и выше (minSDKVersion - 23), используя почти исключительно векторные рисования (импортированные из SVG). После сборки, проверяя анализатор APK, все vectorDrawables были преобразованы в PNG в 6 различных разрешениях , что излишне увеличивает размер APK. Из вводных статей по Android Studio 1.4 я предполагаю, что это происходит с целевым API <21 для нисходящей совместимости, однако я даже не хочу этой совместимости. </p>
Насколько я понимаю, я мог бы управлять этим с помощью aaptOptions в настройках gradle, но я не уверен, как это сделать. Или использование appcompat и support-v4 поощряет сборку к API <21, обеспечивая тем самым автоматическое преобразование XML в PNG? Как остановить преобразование векторных рисунков в растровые изображения в Gradle? </p>
Я уже переключил все настройки компилятора на минимум 23, compileSDKVersion и targetSDKVersion равны 28. Все PNG удаляются из папок res, все остальные растровые изображения конвертируются в webp.
compileSdkVersion 28
defaultConfig {
minSdkVersion 23
targetSdkVersion 28
versionCode 18
versionName "0.9.5"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
buildToolsVersion '28.0.3'
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.google.android.gms:play-services-ads:17.1.2'
implementation 'com.dynamitechetan.flowinggradient:flowinggradient:1.1'
}
Ожидаемый результат заключается в том, что в APK есть только vectordrawables и несколько изображений webP, что уменьшает общий размер. Вместо этого vectordrawables включены в формате png в APK.