Android-Studio-Projekt fuer einen nativen Android-Wrapper um eine lokale HTML-/JavaScript-App. Die App laedt app/src/main/assets/index.html in einer WebView und bringt die Android-spezifischen Dateifunktionen ueber MainActivity.kt mit.
app/enthaelt den eigentlichen Android-App-Code und die Web-App-Assets.gradle/,gradlew,gradlew.bat,build.gradle.kts,settings.gradle.kts,gradle.propertiesgehoeren zum Build.Privat/sync_version_and_build.ps1undPrivat/sync_version_and_build.baterhoehen Version und bauen die Debug-APK..agent/bleibt absichtlich im Repository, damit die Agenten-Workflows mitkommen.Privat/bleibt absichtlich im Repository, ist aber kein Teil des Gradle-Builds. Das ist eher Archiv-/Begleitmaterial.
Du musst nur die Android-Build-Voraussetzungen installieren, nicht extra Gradle:
- Android Studio
- JDK 17
- Android SDK Platform 35
- Android SDK Build-Tools
- Android SDK Platform-Tools
Gradle selbst musst du nicht separat installieren, weil der Gradle Wrapper schon im Projekt enthalten ist.
- Projektordner in Android Studio oeffnen
- Gradle-Sync abwarten
- Falls noetig im SDK Manager die fehlenden Android-SDK-Komponenten nachinstallieren
Android Studio legt local.properties normalerweise automatisch an.
Lege eine local.properties im Projektroot an, falls sie noch nicht existiert:
sdk.dir=C:\\AndroidSDKPasse den Pfad an dein lokales Android-SDK an.
Debug-APK bauen:
.\gradlew.bat assembleDebugDabei wird vor dem eigentlichen Android-Build die komplette Web-App aus
app/src/main/assets/ automatisch nach docs/ synchronisiert. Dadurch
verwenden APK/WebView und GitHub-Pages-/PWA-Version denselben Stand aller
Web-App-Dateien aus dem Assets-Ordner.
Wichtige Regel fuer Web-Aenderungen:
- Die bearbeitbare Quelle ist immer
app/src/main/assets/. docs/ist die synchronisierte Auslieferung fuer GitHub Pages und installierte PWAs.docs/nie direkt bearbeiten, weil diese Dateien beim Sync ausapp/src/main/assets/wieder ueberschrieben werden.- Wenn sich gecachte Web-Dateien aendern, muss auch die Cache-Version in
app/src/main/assets/sw.jswechseln. Das erledigtPrivat/sync_version_and_build.ps1automatisch zusammen mit der Versionsnummer.
Die APK liegt danach typischerweise hier:
app/build/outputs/apk/debug/BarcodeAudiScanner_ver<Version>.apk
Mit diesen Skripten wird:
versionCodeerhoehtversionNameangepasstdata-app-versioninapp/src/main/assets/index.htmlsynchronisiertAPP_SHELL_CACHEundRUNTIME_CACHEinapp/src/main/assets/sw.jsauf die neue Versionsnummer gesetzt- anschliessend
assembleDebuggestartet - nach erfolgreichem Build eine Archivkopie in
Privat/erstellt
Archiviert werden automatisch:
Privat/BarcodeAudiScanner_ver<Version>.htmlPrivat/BarcodeAudiScanner_ver<Version>.apk
Windows Batch:
.\Privat\sync_version_and_build.batPowerShell direkt:
powershell -NoProfile -ExecutionPolicy Bypass -File .\Privat\sync_version_and_build.ps1Wenn spaeter nur Web-App, PWA, Manifest, Vollbild oder Installations-Icons angepasst werden sollen, verwende zusaetzlich diese Vorlage:
Privat/Prompt_WebApp_PWA_Update_und_Cache.md
Sie haelt den festen Ablauf fuer app/src/main/assets, docs/, sw.js, PWA-Cache und iPhone-Installationsicon fest.
Die eigentliche App braucht VS Code nicht, aber fuer den Entwicklungsablauf ist lokal eine kleine VS-Code-Struktur sinnvoll. Dieses Muster kannst du auch in andere Projekte uebernehmen.
.vscode/
settings.json
tasks.json
launch.json
Privat/
sync_version_and_build.bat
sync_version_and_build.ps1
VSCode_Vorlage/
settings.json
tasks.json
launch.json
.vscode/tasks.jsondefiniert die ausfuehrbaren Aufgaben in VS Code..vscode/settings.jsonenthaelt die lokalen Editor-Einstellungen und die Statusleisten-Buttons..vscode/launch.jsonist aktuell nur ein Platzhalter.Privat/sync_version_and_build.batist der einfache Einstiegspunkt fuer Windows und ruft das PowerShell-Skript auf.Privat/sync_version_and_build.ps1macht die eigentliche Arbeit: Version erhoehen,index.htmlsynchronisieren, APK bauen und danach die Archivkopien nachPrivat/schreiben.Privat/VSCode_Vorlage/enthaelt die kopierbaren Vorlagen fuer neue Projekte.
In tasks.json sind aktuell diese Tasks hinterlegt:
Build APKfuehrt.\gradlew.bat assembleDebugausSync Version & Build APKfuehrt.\Privat\sync_version_and_build.bataus
In settings.json sind Buttons ueber statusbar_command.commands hinterlegt. Dadurch erscheinen unten in VS Code diese Schnellstarter:
Build APKSync & Build APK
Die Buttons starten intern einfach die beiden VS-Code-Tasks.
Kopiere oder baue dort dieselben Bausteine nach:
Privat/sync_version_and_build.ps1Privat/sync_version_and_build.batPrivat/VSCode_Vorlage/tasks.jsonPrivat/VSCode_Vorlage/settings.jsonPrivat/VSCode_Vorlage/launch.json
Danach musst du nur noch diese projektspezifischen Stellen anpassen:
- Pfad zu
app\build.gradle.kts - Pfad zu
app\src\main\assets\index.html - erwarteter APK-Ausgabeordner
- APK-Dateiname
- Zielnamen fuer die Archivkopien in
Privat/
.vscode/ ist in .gitignore absichtlich ignoriert. Die Entwicklerumgebung ist also lokal dokumentiert und nutzbar, gehoert aber nicht zwingend zum eigentlichen App-Code. Darum steht das Setup hier in der README, damit du es fuer andere Projekte trotzdem sauber nachbauen kannst.
Die versionierbare Quelle fuer neue Projekte liegt deshalb zusaetzlich in Privat/VSCode_Vorlage/. Von dort kannst du die Dateien in ein neues Projekt nach .vscode/ kopieren.
Nicht mit ins Repository gehoeren und werden ignoriert:
.gradle/.kotlin/.idea/.vscode/build/app/build/app/.gradle/local.properties
Damit bleibt das Repository beim Hochladen auf die wirklich relevanten Projektdateien reduziert.