Repository navigation
v1.0.0
v1.0.0 — Initial Release
Build Android APKs from Ring applications without Gradle.
Highlights
- No Gradle — calls SDK tools directly. Fast, debuggable, no daemon.
- Ring bytecode embedding — compiles
ring/*.ringto C bytecode and links it intolibmain.so. No.ringassets shipped. - Native-first —
android.app.NativeActivityhost, yoursrc/cppbuilt with the NDK via CMake + Ninja. - Optional Java — any
src/java/**/*.javacompiled withjavacand dexed withd8. - Ring-native config — single
ring2apk.ringhash list with defaults for every key. - Multi-ABI —
arm64-v8a,armeabi-v7a,x86,x86_64(override per-build with--target). - Incremental builds — skips when APK exists and sources haven't changed (Murmur3 hash);
--rebuildto force. - 16 KB page-size ready — native libs linked with
-Wl,-z,max-page-size=16384(Android 15+ / Play Console). - Signing built in — debug keystore auto-created; release signing from config or CLI, verified with
apksigner.
Commands
| Command | Description |
|---|---|
init |
Scaffold a new project |
build |
Compile debug/release APK |
run |
Build + install + launch + logcat |
sign |
Sign an existing APK |
clean |
Remove build artifacts |
create-keystore |
Generate a release keystore |
help / version |
Self-explanatory |
Installation
ringpm install ring2apk from ysdragonPre-built binaries: Releases
Requirements
- Ring 1.27+ (
RINGenv orringonPATH) — strictly required - Android SDK (
ANDROID_SDK_ROOT/ANDROID_HOME) - Android NDK
- JDK, CMake + Ninja,
zip
Quick Start
ring2apk init hello
cd hello
ring2apk build # → build/hello-debug.apk
ring2apk run # build + install + launch + logcatFull Changelog: https://github.com/ysdragon/ring2apk/commits/v1.0.0