====== std.android.app_glue ====== android_app-Glue-Schicht: kapselt ANativeActivity in eine ''android_app''-Struktur mit eigenem Thread und vereinfachter Event-Loop. Empfohlener Einstiegspunkt für neue Anwendungen. → [[lyx_-_programmiersprache:units:android|std.android]] · [[lyx_-_programmiersprache:units:android:native_activity|std.android.native_activity]] · [[lyx_-_programmiersprache:units:android:looper|std.android.looper]] ---- ===== Typen ===== ^ Typ ^ Beschreibung ^ | ''android_app'' | Zentrale App-Struktur (activity, config, savedState, looper, inputQueue, window …) | | ''android_poll_source'' | Event-Quelle mit id und process-Callback | ---- ===== Kommando-Konstanten ===== ^ Konstante ^ Bedeutung ^ | ''APP_CMD_START'' | Activity gestartet | | ''APP_CMD_RESUME'' | Activity fortgesetzt | | ''APP_CMD_PAUSE'' | Activity pausiert | | ''APP_CMD_STOP'' | Activity gestoppt | | ''APP_CMD_DESTROY'' | Activity zerstört | | ''APP_CMD_INIT_WINDOW'' | Fenster bereit | | ''APP_CMD_TERM_WINDOW'' | Fenster wird zerstört | | ''APP_CMD_GAINED_FOCUS'' | Fokus erhalten | | ''APP_CMD_LOST_FOCUS'' | Fokus verloren | | ''APP_CMD_LOW_MEMORY'' | Wenig Speicher | | ''APP_CMD_CONFIG_CHANGED'' | Konfiguration geändert (Rotation) | ---- ===== Verwendung ===== import std.android.app_glue; fn HandleCommand(app: *android_app, cmd: int64): void { if (cmd = APP_CMD_INIT_WINDOW) { InitRenderer(app.window); } if (cmd = APP_CMD_TERM_WINDOW) { DestroyRenderer(); } } fn android_main(app: *android_app): void { app.onAppCmd := HandleCommand; 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; } RenderFrame(); } } Letzte Aktualisierung: 2026-05-22