====== 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. → [[lyx_-_programmiersprache:units:android|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