Builds ANGLE for Android and packages it for easy consumption from Gradle / NDK projects.
Companion to angle-apple and
angle-windows.
| ABI | target_cpu |
Args file |
|---|---|---|
arm64-v8a |
arm64 |
Android.arm64.args.gn |
armeabi-v7a |
arm |
Android.arm.args.gn |
x86_64 |
x64 |
Android.x64.args.gn |
Backends enabled: Vulkan (primary) and OpenGL ES (fallback). Minimum API level: 24 (Android 7.0).
Each CI run produces:
Android.<arch>— per-ABItar.gzwith stripped.so, unstripped symbols, and headers.angle-android-jniLibs.zip— drop-injniLibs/{arm64-v8a,armeabi-v7a,x86_64}layout plus headers.angle-android.aar— Gradle-ready AAR with prefab metadata so CMake /ndk-buildconsumers seelibEGLandlibGLESv2as prefab modules.
Published as a static Maven repo on GitHub Pages — no authentication needed:
// settings.gradle.kts or root build.gradle.kts
repositories {
maven { url = uri("https://celestiamobile.github.io/angle-android/") }
}
// app/build.gradle.kts
android {
buildFeatures {
prefab = true
}
}
dependencies {
implementation("space.celestia:angle-android:<version>@aar")
}CMakeLists.txt:
find_package(angle REQUIRED CONFIG)
target_link_libraries(my_app angle::libEGL angle::libGLESv2)Unzip into src/main/ so it merges with the standard jniLibs/ source set:
src/main/jniLibs/arm64-v8a/libEGL.so
src/main/jniLibs/arm64-v8a/libGLESv2.so
...
Add the headers from include/ to your CMakeLists.txt include path manually.
Requires Linux (Chromium's Android build chain is Linux-only):
./build.sh Android arm64
./build.sh Android arm
./build.sh Android x64
./package_aar.sh "$PWD/staging" "$PWD/dist"(staging/ must contain angle-<arch>/ directories — extract each
angle-<arch>.tar.gz into it.)