android: enable R8

This commit is contained in:
Harsh Shandilya 2021-07-08 02:18:23 +05:30
parent 1c2ae9ad99
commit c927a47759
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
4 changed files with 63 additions and 1 deletions

View file

@ -53,7 +53,12 @@ android {
} }
buildTypes.all { signingConfig = signingConfigs.getByName("release") } buildTypes.all { signingConfig = signingConfigs.getByName("release") }
} }
buildTypes { getByName("release") { isMinifyEnabled = false } } buildTypes {
getByName("release") {
isMinifyEnabled = true
proguardFiles("proguard-android-optimize.txt", "proguard-rules.pro")
}
}
compileOptions { compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8

View file

@ -0,0 +1,36 @@
-allowaccessmodification
-dontpreverify
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
-keepattributes *Annotation*
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepclassmembers class * implements android.os.Parcelable {
public static final ** CREATOR;
}
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
@androidx.annotation.Keep <methods>;
}
-keepclasseswithmembers class * {
@androidx.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
@androidx.annotation.Keep <init>(...);
}

16
android/proguard-rules.pro vendored Normal file
View file

@ -0,0 +1,16 @@
-keepattributes SourceFile,LineNumberTable
-keepattributes RuntimeVisibleAnnotations,
RuntimeVisibleParameterAnnotations,
RuntimeVisibleTypeAnnotations,
AnnotationDefault
-renamesourcefileattribute SourceFile
# Retain the generic signature of retrofit2.Call until added to Retrofit.
# Issue: https://github.com/square/retrofit/issues/3580.
# Pull request: https://github.com/square/retrofit/pull/3579.
-keep,allowobfuscation,allowshrinking class retrofit2.Call
# Retain annotation default values for all annotations.
# Required until R8 version >= 3.1.12-dev (expected in AGP 7.1.0-alpha4).
-keep,allowobfuscation,allowshrinking @interface *
-keep,allowobfuscation,allowshrinking class dev.msfjarvis.claw.android.** { *; }

View file

@ -7,12 +7,17 @@ buildscript {
url = uri("https://s01.oss.sonatype.org/content/repositories/snapshots/") url = uri("https://s01.oss.sonatype.org/content/repositories/snapshots/")
content { includeModule("me.amanjeet.daggertrack", "dagger-track") } content { includeModule("me.amanjeet.daggertrack", "dagger-track") }
} }
maven {
url = uri("https://storage.googleapis.com/r8-releases/raw")
content { includeModule("com.android.tools", "r8") }
}
} }
dependencies { dependencies {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.10") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.10")
classpath("com.android.tools.build:gradle:7.1.0-alpha02") classpath("com.android.tools.build:gradle:7.1.0-alpha02")
classpath("com.diffplug.spotless:spotless-plugin-gradle:5.14.0") classpath("com.diffplug.spotless:spotless-plugin-gradle:5.14.0")
classpath("com.google.dagger:hilt-android-gradle-plugin:2.37") classpath("com.google.dagger:hilt-android-gradle-plugin:2.37")
classpath("com.android.tools:r8:3.1.13-dev")
classpath("me.amanjeet.daggertrack:dagger-track:1.0.6-SNAPSHOT") classpath("me.amanjeet.daggertrack:dagger-track:1.0.6-SNAPSHOT")
} }
} }