Files
lnreader/plugins/android/android-build-types.gradle
Patrick Loser 3ece098b94 perf: Optimize APK Size (#1969)
* optimize android build

* update lodash imports

* remove react-navigation/stack

* remove flash-list
2026-08-08 16:24:07 +05:30

62 lines
2.0 KiB
Groovy

def releaseAbiSplitsEnabled = providers
.gradleProperty("releaseAbiSplits")
.map { value -> value.toBoolean() }
.getOrElse(false)
react {
hermesFlags = ["-O", "-output-source-map"]
}
android {
defaultConfig {
// Library resources (Material Components, RN, play-services) only for
// languages the app itself ships (src/i18n/languages/*); other locales
// fall back to English, matching the app's own JS fallback.
resConfigs "af", "ar", "as", "ca", "cs", "da", "de", "el", "en", "es", "fi", "fr", "he", "hi", "hu", "id", "it", "ja", "ko", "nl", "no", "or", "pl", "pt", "ro", "ru", "sq", "sr", "sv", "tr", "uk", "vi", "zh"
}
splits {
abi {
enable releaseAbiSplitsEnabled
reset()
include "arm64-v8a", "armeabi-v7a", "x86", "x86_64"
universalApk releaseAbiSplitsEnabled
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
applicationIdSuffix "debug"
versionNameSuffix "-debug"
}
preRelease {
initWith release
matchingFallbacks = ["release"]
applicationIdSuffix ".preRelease"
versionNameSuffix "-pre-release"
signingConfig signingConfigs.debug
resValue "string", "app_name", "LNReader Preview"
}
}
}
def preReleaseVersionCode = providers.gradleProperty("preReleaseVersionCode")
def preReleaseVersionName = providers.gradleProperty("preReleaseVersionName")
androidComponents {
onVariants(selector().withBuildType("preRelease")) { variant ->
variant.outputs.each { output ->
if (preReleaseVersionCode.isPresent()) {
output.versionCode.set(
preReleaseVersionCode.map { value -> value.toInteger() },
)
}
if (preReleaseVersionName.isPresent()) {
output.versionName.set(preReleaseVersionName)
}
}
}
}