Repository navigation
Releases: ysdragon/ring2apk
Releases · ysdragon/ring2apk
Release list
v1.2.3
Ring2APK - v1.2.3
Incremental builds respect ignored native sources, and the WebView
example becomes an ExtLab native-extensions showcase.
Highlights
- Incremental builds honor
.gitignore— source hashing skips
vendored native caches and pins the toolchain by RING/NDK identity. - ExtLab showcase —
examples/webviewis now a five-tab demo
(Home/SQLite/JSON/HTTP/Threads) with Ring owning state and JS rendering. - Static extensions framework —
cmake/RingExtensions.cmakegenerates
ext.cfromsrc/cpp/ext/; clone-oncethirdparty/(curl 8.22.0,
wolfSSL 5.9.2, Glaze 7.5.0, webview 1.6.1) with OS-store TLS trust, so
device HTTPS verifies with no cert config. - Quieter Android builds —
-Wno-deprecatedsilences the NDK CMake
< 3.10compatibility noise.
Docs
- examples/webview/EXTENSIONS.md — adding extensions, third-party
deps, bridge contract, troubleshooting; example README rewritten with
device screenshots
Package
package.ring1.2.2→1.2.3 — ExtLab sources, Ring wrappers, cmake
module, ext tree, docs screenshot
Full Changelog: v1.2.2...v1.2.3
v1.2.2
Ring2APK - v1.2.2
Windows Java fix plus raylib sync and new WebView example.
Highlights
- raylib sync — 5.0 / 4.0 —
examples/raylib(renamed fromringraylib) now matches upstreamring/extensions/ringraylib5. - WebView example — Nota — new
examples/webview. - Windows build fix —
d8dexing failed onMainActivity$1.classetc. on Windows (NoSuchFileException: MainActivity\$1.class).src/commands/build.ringnow only escapes$as\$on non-Windows (bash/zshexpand$1inside"), Windows passes literal$forcmd.exe. - javac
--release—javac -source 11 -target 11→--release 11— sets--systemto JDK 11 modules, silenceslocation of system modules is not setwarning and prevents accidental JDK 26 API usage onminSdk 21.
Features
- examples — add
examples/webview(Nota)
Fixes
- build —
d8Windows$quoting - build —
javac --release 11
Docs
- README — example table corrected (
raylib 5.0/raygui 4.0, addwebviewrow) - examples/raylib —
README.md+screenshots/screens.png.
Package
package.ring1.2.0→1.2.2 — includesexamples/raylib(renamed) +examples/webviewassets
Full Changelog: v1.2.0...v1.2.2
v1.2.0
Ring2APK - v1.2.0
Project setup command plus incremental hash fixes.
Highlights
- setup command — new
ring2apk setupruns the optional:setupentry fromring2apk.ring(one shell command or a list run in order, first failure stops with exit 1). Explicit only, the build never runs it. Empty or missing key = nothing to do. The ringraylib example uses:setup = "ring download_deps.ring", so fresh clones run setup before the first build. - hash fix — the incremental hash took 76s just listing files on ringraylib. Now the full hash is ~73ms. Cause: a caller variable sharing a name with a function internal corrupts results in Ring, so
listAllFilesExinternals were renamed (dont rename them back). It hashes everything now: ring (.ring+.rh), java, all ofsrc/cppincluding vendored checkouts, assets, resources, manifest, andring2apk.ringitself.
Features
- commands — add
ring2apk setupfor executing project setup steps - config — add
:setupconfiguration option for project setup commands
Fixes
- build — hash
.rhheaders andring2apk.ringitself; hash all ofsrc/cppwith no exclusions
Refactor
- utils — simplify
listAllFilesEximplementation (bulk merge, hoisted invariants, distinctive internal names) - build — simplify sources hash file collection
Docs
- README — setup command usage instructions, incremental build hash documentation
- examples — add
:setupconfiguration to ringraylib example
Full Changelog: v1.1.0...v1.2.0
v1.1.0
Ring2APK - v1.1.0
One-command Android toolchain setup plus dotted SDK platform support.
Highlights
- setup-env tool — new interactive
tools/setup-env.ring(≈1200 lines) installs JDK, Android SDK (cmdline-tools, platform-tools, platforms, build-tools), NDK, and CMake, then configuresJAVA_HOME,ANDROID_HOME,ANDROID_SDK_ROOT,ANDROID_NDK_ROOT,PATH. Supports interactive and non-interactive modes, ships in the package, documented in the README. - Dotted SDK platforms —
:compileSdk = "37.0"now matchesplatforms/android-37.0literally (quoted strings pass through unstripped); a bare major with no exact dir falls back to its base dotted dir (36→android-36.0).android.jar not founderrors now list installed platforms,~/Androidjoins the default SDK search locations, and SDK validation tolerates string inputs viaNumOrZero. - Windows path hardening — all build/init/run/sign path assembly moved to
joinPath, and the vendored-Ring exclusion is separator-normalized so hashing and filtering behave on Windows.
Features
- package — add
ring-htmlandarchivepackage dependencies - build — log a message when Java compilation is skipped (no sources)
Fixes
- config — type-check
cApiLevelbefore string conversion in platform lookup
Refactor
- paths — replace string concatenation with
joinPathacross build/init/run/sign
Docs
- README — setup-env usage instructions
- cli — remove examples section from help output
Package
package.ringshipstools/setup-env.ringand the newring-html/archivedependencies
Full Changelog: v1.0.1...v1.1.0
v1.0.1
Ring2APK - v1.0.1
Fixes Windows native builds and ships the first full app template.
Highlights
- Windows Ninja fix —
cmake.exe -G Ninjano longer fails whenninjais bundled at<sdk>/cmake/<ver>/bin/ninja.exebut that dir isn't onPATH. Now detectsninja[.exe]next to the selectedcmake, passes-DCMAKE_MAKE_PROGRAMexplicitly, keeps-G Ninjawhenninjais onPATH, and omits-Gto fall back to CMake's default generator when no Ninja exists at all. - ringraylib example — complete
raylib 5.5 + raygui 5.0showcase (menu, touch/gestures, GUI controls, info) onNativeActivity.ring/screens +raylib/rayguiwrappers,src/cpp/ring_raylib.c(15k+ lines bindings), immersiveMainActivity(WindowInsetsControllerhide status/nav, API 21+/30+),AndroidManifest.xml+ themedres/,download_deps.ringfor heavy vendored deps, UI scaled withmin(screenW/720, screenH/1280)capped at2x.
Fixes
- build —
CMake Error: CMAKE_MAKE_PROGRAM is not seton Windows - package — remove stray
AndroidManifest.xmlfromhelloexample package list
Docs
- README — add project templates / examples section
- README — add Windows shell command examples for file viewing
Package
package.ringnow includes allexamples/ringraylibassets (res, ring, cpp, java, manifest, screenshots)
Full Changelog: v1.0.0...v1.0.1
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