diff options
author | Zephyron <zephyron@citron-emu.org> | 2025-01-13 15:17:39 +1000 |
---|---|---|
committer | Zephyron <zephyron@citron-emu.org> | 2025-01-13 15:17:39 +1000 |
commit | 6d5475a9cf51feb36bb1a45d88b51182ede4a1f8 (patch) | |
tree | cd1b0e93152d7fb5f59408495a0a4aad10f4bd66 /src/android/app/build.gradle.kts | |
parent | 2d7f9d921b3508a5c5effba5604aaea5620441ef (diff) |
Android: Update build system and dependencies
- Update Gradle from 8.1 to 8.10.2
- Update Android Gradle Plugin from 8.1.2 to 8.8.0
- Update Kotlin from 1.9.20 to 2.1.20-Beta1
- Update various AndroidX dependencies to latest versions
- Update NDK from 26.1 to 27.2 (with RC1/RC2 options commented)
- Update Java target from 17 to 21
- Update Android target SDK from 34 to 35
- Enable additional optimizations in release builds:
- Enable shrinkResources
- Use proguard-android-optimize.txt
- Disable JNI debugging
- Replace vector drawables with PNG for ic_citron
- Comment out unused ComputeInline constant in dma_pusher.cpp
- Update Gradle wrapper and configuration files
This updates the Android build system and dependencies to their latest
versions while enabling additional optimizations for release builds.
The ic_citron icon was converted from vector to PNG format for better
compatibility.
Diffstat (limited to 'src/android/app/build.gradle.kts')
-rw-r--r-- | src/android/app/build.gradle.kts | 56 |
1 files changed, 29 insertions, 27 deletions
diff --git a/src/android/app/build.gradle.kts b/src/android/app/build.gradle.kts index 4965b9564..793a8621c 100644 --- a/src/android/app/build.gradle.kts +++ b/src/android/app/build.gradle.kts @@ -10,10 +10,10 @@ plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("kotlin-parcelize") - kotlin("plugin.serialization") version "1.9.20" + kotlin("plugin.serialization") version "2.1.20-Beta1" id("androidx.navigation.safeargs.kotlin") - id("org.jlleitschuh.gradle.ktlint") version "11.4.0" - id("com.github.triplet.play") version "3.8.6" + id("org.jlleitschuh.gradle.ktlint") version "12.1.2" + id("com.github.triplet.play") version "3.12.1" } /** @@ -27,20 +27,20 @@ val autoVersion = (((System.currentTimeMillis() / 1000) - 1451606400) / 10).toIn android { namespace = "org.citron.citron_emu" - compileSdkVersion = "android-34" - ndkVersion = "26.1.10909125" + compileSdkVersion = "android-35" + ndkVersion = "27.2.12479018" // "28.0.12433566 rc1"// "28.0.12674087 rc2" // "26.1.10909125" buildFeatures { viewBinding = true } compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 } kotlinOptions { - jvmTarget = "17" + jvmTarget = "21" } packaging { @@ -56,7 +56,7 @@ android { // TODO If this is ever modified, change application_id in strings.xml applicationId = "org.citron.citron_emu" minSdk = 30 - targetSdk = 34 + targetSdk = 35 versionName = getGitVersion() versionCode = if (System.getenv("AUTO_VERSIONED") == "true") { @@ -104,10 +104,13 @@ android { } resValue("string", "app_name_suffixed", "citron") + isDefault = true + isShrinkResources = true isMinifyEnabled = true + isJniDebuggable = false isDebuggable = false proguardFiles( - getDefaultProguardFile("proguard-android.txt"), + getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } @@ -115,13 +118,12 @@ android { // builds a release build that doesn't need signing // Attaches 'debug' suffix to version and package name, allowing installation alongside the release build. register("relWithDebInfo") { - isDefault = true resValue("string", "app_name_suffixed", "citron Debug Release") signingConfig = signingConfigs.getByName("default") isMinifyEnabled = true isDebuggable = true proguardFiles( - getDefaultProguardFile("proguard-android.txt"), + getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) versionNameSuffix = "-relWithDebInfo" @@ -146,7 +148,7 @@ android { create("mainline") { isDefault = true dimension = "version" - buildConfigField("Boolean", "PREMIUM", "false") + buildConfigField("Boolean", "PREMIUM", "true") // Spoof EA Version } create("ea") { @@ -184,7 +186,7 @@ android { } } -tasks.create<Delete>("ktlintReset") { +tasks.create<Delete>("ktlintReset") { // Deprecated, Still Works. delete(File(buildDir.path + File.separator + "intermediates/ktLint")) } @@ -202,7 +204,7 @@ ktlint { version.set("0.47.1") android.set(true) ignoreFailures.set(false) - disabledRules.set( + disabledRules.set( // Deprecated, Still Works. setOf( "no-wildcard-imports", "package-name", @@ -224,24 +226,24 @@ play { } dependencies { - implementation("androidx.core:core-ktx:1.12.0") - implementation("androidx.appcompat:appcompat:1.6.1") - implementation("androidx.recyclerview:recyclerview:1.3.1") - implementation("androidx.constraintlayout:constraintlayout:2.1.4") - implementation("androidx.fragment:fragment-ktx:1.6.1") + implementation("androidx.core:core-ktx:1.15.0") + implementation("androidx.appcompat:appcompat:1.7.0") + implementation("androidx.recyclerview:recyclerview:1.3.2") + implementation("androidx.constraintlayout:constraintlayout:2.2.0") + implementation("androidx.fragment:fragment-ktx:1.8.5") implementation("androidx.documentfile:documentfile:1.0.1") - implementation("com.google.android.material:material:1.9.0") + implementation("com.google.android.material:material:1.12.0") implementation("androidx.preference:preference-ktx:1.2.1") - implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2") + implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7") implementation("io.coil-kt:coil:2.2.2") implementation("androidx.core:core-splashscreen:1.0.1") - implementation("androidx.window:window:1.2.0-beta03") - implementation("androidx.constraintlayout:constraintlayout:2.1.4") + implementation("androidx.window:window:1.3.0") + implementation("androidx.constraintlayout:constraintlayout:2.2.0") implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0") - implementation("androidx.navigation:navigation-fragment-ktx:2.7.4") - implementation("androidx.navigation:navigation-ui-ktx:2.7.4") + implementation("androidx.navigation:navigation-fragment-ktx:2.8.5") + implementation("androidx.navigation:navigation-ui-ktx:2.8.5") implementation("info.debatty:java-string-similarity:2.0.0") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0") + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3") } fun runGitCommand(command: List<String>): String { |