From 06b2db1f600fa448b8e621d6eb6a69d14ec8e588 Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Tue, 19 Apr 2022 18:46:45 -0400 Subject: [PATCH] Split apks by architecture when building Co-Authored-By: arkon <4098258+arkon@users.noreply.github.com> --- app/build.gradle.kts | 14 +++++++++++++- .../tachiyomi/data/updater/github/GithubRelease.kt | 13 ++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6f607f28dc..76ca225a33 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -27,6 +27,8 @@ fun runCommand(command: String): String { return String(byteOut.toByteArray()).trim() } +val supportedAbis = setOf("armeabi-v7a", "arm64-v8a", "x86") + android { compileSdk = AndroidVersions.compileSdk @@ -45,9 +47,19 @@ android { buildConfigField("Boolean", "INCLUDE_UPDATER", "false") ndk { - abiFilters += setOf("armeabi-v7a", "arm64-v8a", "x86") + abiFilters += supportedAbis } } + + splits { + abi { + isEnable = true + reset() + include(*supportedAbis.toTypedArray()) + isUniversalApk = true + } + } + buildTypes { getByName("debug") { applicationIdSuffix = ".debugJ2K" diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/updater/github/GithubRelease.kt b/app/src/main/java/eu/kanade/tachiyomi/data/updater/github/GithubRelease.kt index 69cafcd522..274011c400 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/updater/github/GithubRelease.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/updater/github/GithubRelease.kt @@ -1,5 +1,6 @@ package eu.kanade.tachiyomi.data.updater.github +import android.os.Build import com.google.gson.annotations.SerializedName import eu.kanade.tachiyomi.data.updater.Release @@ -23,7 +24,17 @@ class GithubRelease( * @return download link of latest release. */ override val downloadLink: String - get() = assets[0].downloadLink + get() { + val apkVariant = when (Build.SUPPORTED_ABIS[0]) { + "arm64-v8a" -> "-arm64-v8a" + "armeabi-v7a" -> "-armeabi-v7a" + "x86", "x86_64" -> "-x86" + else -> "" + } + + return assets.find { it.downloadLink.contains("tachiyomij2k$apkVariant-") }?.downloadLink + ?: assets[0].downloadLink + } /** * Assets class containing download url.