Inhaltsverzeichnis

std.android

Android NDK-Bindings für Lyx: Native Activity, JNI-Typen, OpenGL ES 2.0, Asset-Manager, Sensor-API, Input-Events und APK-Erzeugung. Ermöglicht die Entwicklung nativer Android-Anwendungen vollständig in Lyx ohne Java/Kotlin.

Standard Library · std.x11


Architektur

┌─────────────────────────────────────────────────────┐
│                   Anwendungsschicht                  │
│  native_activity · app_glue · input · sensor        │
├─────────────────────────────────────────────────────┤
│                   Grafik / Audio                     │
│  gles2 · native_window · egl (via qt5_egl)          │
├─────────────────────────────────────────────────────┤
│                   System / IO                        │
│  asset · log · looper · ioctl · random              │
├─────────────────────────────────────────────────────┤
│                   Paketierung                        │
│  jni · manifest_gen · zip_writer · apk_builder      │
└─────────────────────────────────────────────────────┘


Units

Unit Beschreibung
std.android.native_activity ANativeActivity-Lifecycle-Callbacks (onCreate, onResume …)
std.android.app_glue android_app-Glue-Code: Event-Loop, Hauptthread entkoppeln
std.android.input AInputEvent: Touch, Key, Motion-Events auslesen
std.android.sensor ASensorManager: Accelerometer, Gyroscope, Magnetometer
std.android.gles2 OpenGL ES 2.0 Bindings (Shader, Texturen, Draw Calls)
std.android.native_window ANativeWindow: Surface-Handle für GL-Rendering
std.android.asset AAssetManager: Dateien aus APK-Assets lesen
std.android.log __android_log_print — Logcat-Ausgabe
std.android.looper ALooper: Datei-Deskriptor-Events in den Event-Loop einbinden
std.android.ioctl Low-level ioctl-Aufrufe für Android-Gerätetreiber
std.android.random Kryptografisch sichere Zufallszahlen via /dev/urandom
std.android.restrictions Android Enterprise Restrictions (MDM-Richtlinien) auslesen
std.android.jni JNI-Typ-Aliases (JNIEnv, jobject, jstring …)
std.android.manifest_gen AndroidManifest.xml programmatisch erzeugen
std.android.zip_writer ZIP-Archiv erstellen (Grundlage für APK-Erzeugung)
std.android.apk_builder APK-Datei aus Manifest, Ressourcen und .so-Bibliothek bauen

Minimales Beispiel

import std.android.native_activity;
import std.android.app_glue;
import std.android.log;

fn android_main(app: *android_app): void {
    AndroidLogInfo("MyApp", "Anwendung gestartet");

    app.onAppCmd := HandleCommand;
    app.onInputEvent := HandleInput;

    var running: bool := true;
    while (running) {
        var events: int64 := 0;
        var source: *android_poll_source := nil;
        ALooperPollAll(0, nil, &events, &source);
        if (source != nil) {
            source.process(app, source);
        }
        if (app.destroyRequested != 0) {
            running := false;
        }
    }
}

Letzte Aktualisierung: 2026-05-22