diff --git a/app/build.gradle b/app/build.gradle index f3dad4ad8..bcabb7e46 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,5 @@ +import java.nio.file.Paths + apply plugin: 'com.android.application' android { @@ -25,8 +27,8 @@ android { applicationId "io.github.nekoinverter.ehviewer" minSdkVersion 21 targetSdkVersion 30 - versionCode 141 - versionName "1.7.21.2" + versionCode 143 + versionName "1.7.22" resConfigs "zh", "zh-rCN", "zh-rHK", "zh-rTW", "es", "ja", "ko", "fr", "de", "th" testOptions.unitTests.includeAndroidResources = true @@ -40,7 +42,7 @@ android { lintOptions { disable 'MissingTranslation' abortOnError true - checkReleaseBuilds true + checkReleaseBuilds false } packagingOptions { @@ -57,7 +59,7 @@ android { release { minifyEnabled true shrinkResources true - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + proguardFiles 'proguard-rules.pro' signingConfig signingConfigs.release } debug { @@ -71,17 +73,40 @@ android { java.srcDirs += 'src/main/java-gen' } } - - splits.abi { - enable true - universalApk true - } } tasks.withType(JavaCompile) { task -> task.dependsOn ":daogenerator:executeDaoGenerator" } +def optimizeReleaseResources = task('optimizeReleaseResources').doLast { + def aapt2 = Paths.get(project.android.sdkDirectory.path, 'build-tools', project.android.buildToolsVersion, 'aapt2') + def zip = Paths.get( + project.buildDir.path, + "intermediates", + "shrunk_processed_res", + "release", + "resources-release-stripped.ap_" + ) + def optimized = new File("${zip}.opt") + def cmd = exec { + commandLine aapt2, 'optimize', '--collapse-resource-names', + '--shorten-resource-paths', + '-o', optimized, zip + ignoreExitValue false + } + if (cmd.exitValue == 0) { + delete(zip) + optimized.renameTo("$zip") + } +} + +tasks.whenTaskAdded { task -> + if (task.name == 'shrinkReleaseRes') { + task.finalizedBy optimizeReleaseResources + } +} + dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation "androidx.activity:activity:1.2.1" diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index d57b0e5c2..e3574233b 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -25,7 +25,7 @@ -keepclassmembers class * extends org.greenrobot.greendao.AbstractDao { public static java.lang.String TABLENAME; } --keep class **$Properties { *; } +-keep class com.hippo.ehviewer.dao.* { *; } -dontwarn net.sqlcipher.database.** -dontwarn rx.** -dontwarn org.conscrypt.ConscryptHostnameVerifier \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 027ef9db8..d296fbeee 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,3 +19,4 @@ android.useAndroidX=true android.enableJetifier=true +android.enableResourceOptimizations=false