Inhaltsverzeichnis

std.android.jni

JNI-Typ-Aliases für die Lyx–Java-Interaktion: JNIEnv, JavaVM, jobject, jstring, jint und weitere Primitive. Ermöglicht das Aufrufen von Java-Methoden aus nativem Lyx-Code und umgekehrt.

std.android


Typen

Lyx-Alias JNI-Original Beschreibung
JNIEnv JNIEnv* Zeiger auf JNI-Funktionstabelle (je Thread)
JavaVM JavaVM* Globale JVM-Instanz
jobject jobject Generisches Java-Objekt
jclass jclass Java-Klassen-Referenz
jstring jstring Java-String-Objekt
jbyteArray jbyteArray Java-byte[]-Array
jint jint 32-Bit-Integer (Java int)
jlong jlong 64-Bit-Integer (Java long)
jboolean jboolean Java boolean
jfloat jfloat Java float
jmethodID jmethodID Handle auf eine Java-Methode
jfieldID jfieldID Handle auf ein Java-Feld

Verwendung

import std.android.jni;

// Java-Methode aufrufen (vereinfachtes Beispiel)
fn CallJavaToast(env: JNIEnv, activity: jobject, msg: pchar): void {
    var cls: jclass := JniGetObjectClass(env, activity);
    var mid: jmethodID := JniGetMethodID(env, cls, "showToast", "(Ljava/lang/String;)V");
    var jmsg: jstring := JniNewStringUTF(env, msg);
    JniCallVoidMethod(env, activity, mid, jmsg);
    JniDeleteLocalRef(env, jmsg);
}


Funktionen

Signatur Sichtbarkeit Beschreibung
JniGetObjectClass(env: JNIEnv, obj: jobject): jclass pub Gibt Klasse eines Objekts zurück
JniGetMethodID(env: JNIEnv, cls: jclass, name: pchar, sig: pchar): jmethodID pub Sucht Methoden-ID nach Name und Signatur
JniCallVoidMethod(env: JNIEnv, obj: jobject, mid: jmethodID, …): void pub Ruft void-Methode auf
JniCallIntMethod(env: JNIEnv, obj: jobject, mid: jmethodID, …): jint pub Ruft int-rückgebende Methode auf
JniNewStringUTF(env: JNIEnv, s: pchar): jstring pub Erzeugt Java-String aus UTF-8-Zeiger
JniGetStringUTFChars(env: JNIEnv, s: jstring): pchar pub Gibt UTF-8-Zeiger auf Java-String zurück
JniDeleteLocalRef(env: JNIEnv, ref: jobject): void pub Gibt lokale JNI-Referenz frei

Letzte Aktualisierung: 2026-05-22