Включите Proguard в build.gradle, и во время компиляции автоматически будет выполнена следующая серия оптимизаций:
включать ProGuard Конфигурация : существовать build.gradle в скрипте сборки " android / buildTypes " в иерархии , Конфигурация debug / release Похожие параметры ,Вот и всевключать ProGuard ;
настраивать minifyEnabled true Конфигурация , и Конфигурация proguardFiles Запутать Конфигурациядокумент , существовать Android Studio середина , Обычно подразумевать значение по умолчанию Конфигурациядокумент ;
android {
buildTypes {
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
Запутать Конфигурациядокумент说明 :
существовать proguardFiles getDefaultProguardFile(‘proguard-android-optimize.txt’), ‘proguard-rules.pro’ середина ,Конфигурация состоит из двух файлов.,
Чтосередина proguard-android-optimize.txt это значение по умолчанию Конфигурациядокумент , Автоматически генерируется системой ; proguard-rules.pro Запутать сам пользователь Конфигурация Конфигурациядокумент , существуют при упаковке , Поставь эти два ProGuard Файлы конфигурации объединены. ;
Запутанная запись файлов : Ссылки на сторонние библиотеки и службы , В целом не запутано , Перейдите на соответствующую страницу с открытым исходным кодом. , 查找Запутать Конфигурация ;
При компиляции определенного пакета или класса он выдает предупреждение и завершает работу. , -dontwarn Конфигурация Этот пакет не должен взрываться предупреждениями ;
При обнаружении не найденного класса используйте -keep, чтобы не перепутать класс;
Обычно используется Запутать Конфигурация :
" -dontwarn " : Не сообщать о предупреждающих сообщениях , Если появляется предупреждение , Компиляция и упаковка будут прекращены. ;
# com Не взрывайте предупреждения под названием пакета
-dontwarn com.**
" -keep " : Не путайте классы ;
# com Класс под именем пакета не обязательно Запутать
-keep class com.**{*;}
скомпилировано до обфускации APK Инсталляционный пакет :
Скомпилировано после обфускации APK Инсталляционный пакет :
Полный скрипт сборки build.gradle;
plugins {
id 'com.android.application'
id 'kotlin-android'
}
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "kim.hsl.svg"
minSdkVersion 18
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
// генерировать PNG Конфигурация изображения
//generatedDensities = ['hdpi', 'mdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi']
// использовать com.android.support:appcompat Поддержка конфигурации библиотеки
vectorDrawables.useSupportLibrary = true
// Международные ресурсы Конфигурация, Упаковывайте только ресурсы по умолчанию и ресурсы на английском языке.
resConfigs 'en'
}
// включать Запутать
buildTypes {
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.3.2'
// Библиотека поддержки векторной графики , поддерживать 5.0 Следующие версии мобильного телефона используют векторную иллюстрацию , Это конфигурация, которая поставляется при создании приложения.
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
Обратитесь к предыдущим ресурсам блога:
Ресурсы блога: