android: Bump minSdkVersion to 23

This commit is contained in:
Jordan Rose
2025-11-06 15:51:06 -08:00
committed by GitHub
parent 177a495eba
commit 26f46d3d68
8 changed files with 17 additions and 14 deletions

View File

@@ -158,12 +158,12 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
# 21 is our minimal API level # 23 is our minimal API level
# 33 is our target API level # 33 is our target API level
include: include:
- api_level: 21 - api_level: 23
arch: x86 arch: x86
- api_level: 21 - api_level: 23
arch: x86_64 arch: x86_64
- api_level: 33 - api_level: 33
arch: x86_64 arch: x86_64
@@ -211,7 +211,7 @@ jobs:
api-level: ${{ matrix.api_level }} api-level: ${{ matrix.api_level }}
ndk: ${{ env.ANDROID_NDK_VERSION }} ndk: ${{ env.ANDROID_NDK_VERSION }}
force-avd-creation: false force-avd-creation: false
disk-size: 1024M disk-size: 2048M
emulator-options: -no-window -noaudio -no-boot-anim -no-metrics emulator-options: -no-window -noaudio -no-boot-anim -no-metrics
script: echo "Generated AVD snapshot for caching." script: echo "Generated AVD snapshot for caching."
@@ -221,7 +221,7 @@ jobs:
arch: ${{ matrix.arch }} arch: ${{ matrix.arch }}
api-level: ${{ matrix.api_level }} api-level: ${{ matrix.api_level }}
ndk: ${{ env.ANDROID_NDK_VERSION }} ndk: ${{ env.ANDROID_NDK_VERSION }}
disk-size: 1024M disk-size: 2048M
force-avd-creation: false force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -noaudio -no-boot-anim -no-metrics emulator-options: -no-snapshot-save -no-window -noaudio -no-boot-anim -no-metrics
script: | script: |

View File

@@ -81,7 +81,7 @@ These should usually be prioritized in that order, but adjust the trade-off as n
# Java # Java
- Many of our APIs are shared between Android and Server, and we also run the client tests on desktop machines, so **stick to Java 8** unless you've verified that something newer is available on Android (back to our earliest supported version, API level 21, at the time of this writing), and don't use Android-specific APIs unless you're actually in Android-specific code. (This *should* be checked in CI but things have slipped through before, and it'll save you time to know whether you're allowed to use something.) - Many of our APIs are shared between Android and Server, and we also run the client tests on desktop machines, so **stick to Java 8** unless you've verified that something newer is available on Android (back to our earliest supported version, API level 23, at the time of this update), and don't use Android-specific APIs unless you're actually in Android-specific code. (This *should* be checked in CI but things have slipped through before, and it'll save you time to know whether you're allowed to use something.)
- **Put server-specific APIs in the server/ folder if they're not needed to test client features**, so they don't add code size for Android. - **Put server-specific APIs in the server/ folder if they're not needed to test client features**, so they don't add code size for Android.

View File

@@ -3,3 +3,5 @@ v0.86.0
- Node: export libsignal-net remote config keys as an array. - Node: export libsignal-net remote config keys as an array.
- java: Remove protocol.util.Pair in favor of kotlin.Pair - java: Remove protocol.util.Pair in favor of kotlin.Pair
- Android: The min SDK version is now 23.

View File

@@ -42,7 +42,7 @@ Rust allows running tests with cross-compiled targets, but normally that only wo
ANDROID_NDK_HOME=path/to/ndk ANDROID_NDK_HOME=path/to/ndk
CARGO_PROFILE_TEST_STRIP=debuginfo # make the "push" step take less time CARGO_PROFILE_TEST_STRIP=debuginfo # make the "push" step take less time
CARGO_PROFILE_BENCH_STRIP=debuginfo # same for benchmarks CARGO_PROFILE_BENCH_STRIP=debuginfo # same for benchmarks
CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=path/to/ndk/toolchains/llvm/prebuilt/YOUR_HOST_HERE/bin/aarch64-linux-android21-clang CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=path/to/ndk/toolchains/llvm/prebuilt/YOUR_HOST_HERE/bin/aarch64-linux-android23-clang
CARGO_TARGET_AARCH64_LINUX_ANDROID_RUNNER=bin/adb-run-test # in the repo root CARGO_TARGET_AARCH64_LINUX_ANDROID_RUNNER=bin/adb-run-test # in the repo root
``` ```

View File

@@ -13,7 +13,7 @@ android {
compileSdk 34 compileSdk 34
defaultConfig { defaultConfig {
minSdkVersion 21 minSdkVersion 23
targetSdkVersion 33 targetSdkVersion 33
multiDexEnabled true multiDexEnabled true

View File

@@ -22,7 +22,7 @@ android {
ndkVersion '28.0.13004108' ndkVersion '28.0.13004108'
defaultConfig { defaultConfig {
minSdkVersion 21 minSdkVersion 23
targetSdkVersion 33 targetSdkVersion 33
multiDexEnabled true multiDexEnabled true
testInstrumentationRunner "org.signal.libsignal.util.AndroidJUnitRunner" testInstrumentationRunner "org.signal.libsignal.util.AndroidJUnitRunner"

View File

@@ -12,7 +12,7 @@ android {
compileSdk 34 compileSdk 34
defaultConfig { defaultConfig {
minSdkVersion 21 minSdkVersion 23
targetSdkVersion 33 targetSdkVersion 33
multiDexEnabled true multiDexEnabled true

View File

@@ -188,10 +188,11 @@ export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1
# Use the Android NDK's prebuilt Clang+lld as pqcrypto's compiler and Rust's linker. # Use the Android NDK's prebuilt Clang+lld as pqcrypto's compiler and Rust's linker.
ANDROID_TOOLCHAIN_DIR=$(echo "${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt"/*/bin/) ANDROID_TOOLCHAIN_DIR=$(echo "${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt"/*/bin/)
export CC_aarch64_linux_android="${ANDROID_TOOLCHAIN_DIR}/aarch64-linux-android21-clang" ANDROID_MIN_SDK_VERSION=23
export CC_armv7_linux_androideabi="${ANDROID_TOOLCHAIN_DIR}/armv7a-linux-androideabi21-clang" export CC_aarch64_linux_android="${ANDROID_TOOLCHAIN_DIR}/aarch64-linux-android${ANDROID_MIN_SDK_VERSION}-clang"
export CC_x86_64_linux_android="${ANDROID_TOOLCHAIN_DIR}/x86_64-linux-android21-clang" export CC_armv7_linux_androideabi="${ANDROID_TOOLCHAIN_DIR}/armv7a-linux-androideabi${ANDROID_MIN_SDK_VERSION}-clang"
export CC_i686_linux_android="${ANDROID_TOOLCHAIN_DIR}/i686-linux-android21-clang" export CC_x86_64_linux_android="${ANDROID_TOOLCHAIN_DIR}/x86_64-linux-android${ANDROID_MIN_SDK_VERSION}-clang"
export CC_i686_linux_android="${ANDROID_TOOLCHAIN_DIR}/i686-linux-android${ANDROID_MIN_SDK_VERSION}-clang"
export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${CC_aarch64_linux_android}" export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${CC_aarch64_linux_android}"
export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="${CC_armv7_linux_androideabi}" export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="${CC_armv7_linux_androideabi}"