Android:
* compileSdk/targetSdk 34 -> 36, minSdk 21 -> 30, ANDROID_PLATFORM android-30
* pin ndkVersion 27.2.12479018, AGP 8.1.2 -> 9.2.1, Gradle 8.0 -> 9.4.1
(Gradle 9.x is what runs on the JDK 25 that Android Studio now ships)
* Java 8 -> 17, javac encoding pinned to UTF-8
* drop the x86 ABI: no 32-bit x86 devices exist at minSdk 30, and it was
a third of the native build time
* refresh AndroidX dependencies
Fixes found while getting the above to build:
* AssetUtils invoked a bare `python` on Windows and Android, which does not
exist on distros that only ship `python3`. Use the interpreter CMake finds,
on every platform.
* os_libc.h re-declared bcopy/bcmp/bzero, which clashes with bionic's
fortified overloadable versions; include <strings.h> on Android instead,
the same way OSX is already special-cased.
* libultra.c defined those same wrappers, which bionic already provides.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>