Documentation archive · Archivo de documentación
Original recorded source; its language and historical claims are preserved. Download original file
# Adaptador JNI opcional Los plugins estándar no necesitan este adaptador. La implementación C demuestra la ABI de plugin con `native.info`; el ELF x86_64 precompilado se distribuye en `examples/native/libkoru_native.so` y se ha probado en Android 11/ART. Su código usa exclusivamente la tabla de funciones JNI. No enlaza libc ni una JVM; el proceso Android proporciona ART. El header JNI de AOSP conserva Apache-2.0, con licencia incluida en `include/`. El código koru conserva MIT. Compilar el ejemplo **de desarrollo**, en un host x86_64 con GCC: ```sh gcc -std=c11 -Wall -Wextra -Werror -shared -fPIC -ffreestanding -nostdlib \ -fno-stack-protector -Wl,-soname,libkoru_native.so -Wl,--hash-style=both \ -Wl,-z,max-page-size=16384 -I runtime/native/include \ runtime/native/koru_plugin.c -o examples/native/libkoru_native.so ``` Esto no forma parte de koru build. Para otra ABI se usa un compilador C adecuado y se distribuye el ELF precompilado correspondiente. No se necesita Java/JDK/Gradle. El ejemplo se limita a JNI y no pretende que un ELF general compilado contra glibc funcione en Android; para otros plugins hace falta un toolchain C compatible con Android y sus dependencias. Prueba del scope de hilo: ```sh gcc -std=c11 -Wall -Wextra -Werror -I runtime/native/include \ runtime/native/koru_plugin.c runtime/native/scope_test.c -o /tmp/koru-scope-test /tmp/koru-scope-test ``` Es una prueba unitaria de ownership con una tabla JNI controlada, no una simulación de ART. La ejecución real Android está registrada en docs/results/full/android-smoke.json.