diff --git a/.github/skills/android-device/SKILL.md b/.github/skills/android-device/SKILL.md index 386cd29..019d5c9 100644 --- a/.github/skills/android-device/SKILL.md +++ b/.github/skills/android-device/SKILL.md @@ -50,73 +50,130 @@ Erwartete Ausgabe: XXXXXXXXXXXXXXXX device product:dm3q model:SM_S928B device:dm3q transport_id:N ``` -### 3. Wireless ADB (optional, kabellos) +### 3. Wireless ADB (bevorzugt – kein Datenkabel nötig) + +**Voraussetzung:** PC und Handy im selben WLAN (aktuell: `funkbert`). + +1. Auf dem Handy: **Einstellungen → Entwickleroptionen → Drahtloses Debugging** aktivieren +2. **"Gerät koppeln mit Kopplungscode"** antippen → IP:Port und 6-stelligen Code merken +3. Am PC koppeln: ```powershell $adb = "C:\Users\JensR\AppData\Local\Android\Sdk\platform-tools\adb.exe" - -# Bei verbundenem USB: Wireless Pairing starten -& $adb tcpip 5555 - -# IP-Adresse des Handys finden (Einstellungen → Über das Telefon → Status → IP-Adresse) -& $adb connect 192.168.X.X:5555 - -# USB-Kabel kann jetzt entfernt werden +& $adb pair : +# Beispiel: & $adb pair 192.168.68.107:36257 644638 ``` +4. Verbinden (der Verbindungsport steht unter "IP-Adresse und Port" im Drahtloses-Debugging-Menü – **anderer Port als der Kopplungsport!**): + +```powershell +& $adb connect : +# Beispiel: & $adb connect 192.168.68.107:42539 +``` + +5. Prüfen: + +```powershell +& $adb devices -l +# Erwartete Ausgabe: 192.168.68.107:42539 device product:e3qxeea model:SM_S928B device:e3q +``` + +**Hinweis:** Die Kopplung bleibt bestehen, aber der Verbindungsport ändert sich bei jedem Neustart des Debugging-Modus. Der `adb connect`-Befehl muss dann mit dem neuen Port wiederholt werden. + +**Wichtig:** `adb -d` (USB-Flag) funktioniert NICHT mit Wireless ADB. Stattdessen `adb -s :` verwenden. + --- ## Operationen via Skript +**Hinweis:** Die Skript-Aktionen `deploy-device` und `install-device` verwenden `adb -d` und funktionieren nur über USB. Bei Wireless ADB die manuellen Kommandos verwenden. + ```powershell -# App bauen + auf Gerät installieren + starten +# App bauen + auf Gerät installieren + starten (nur USB) & ".github/skills/android-build/android-dev.ps1" -Action deploy-device -# Nur installieren (ohne Build) +# Nur installieren (nur USB) & ".github/skills/android-build/android-dev.ps1" -Action install-device -# App starten +# App starten (nur USB) & ".github/skills/android-build/android-dev.ps1" -Action launch -Target device -# Logcat vom Gerät +# Logcat vom Gerät (nur USB) & ".github/skills/android-build/android-dev.ps1" -Action logcat -Target device ``` --- -## Manuelle Kommandos (Fallback) +## Manuelle Kommandos (Wireless ADB & USB-Fallback) + +Alle Kommandos unterstützen sowohl USB (`-d`) als auch Wireless (`-s :`). +Bei Wireless ADB immer `-s` statt `-d` verwenden. + +```powershell +$adb = "C:\Users\JensR\AppData\Local\Android\Sdk\platform-tools\adb.exe" +# Geräte-Selektor: +# USB: $sel = "-d" +# Wireless: $sel = "-s 192.168.68.107:42539" (Port prüfen!) +``` + +### App bauen + installieren + starten (Wireless-Workflow) + +```powershell +$adb = "C:\Users\JensR\AppData\Local\Android\Sdk\platform-tools\adb.exe" +$dev = "192.168.68.107:42539" # Port prüfen! + +# 1. Build +cd X:\krisenvorrat +.\gradlew.bat assembleDebug + +# 2. Install +& $adb -s $dev install -r "app\build\outputs\apk\debug\app-debug.apk" + +# 3. Launch +& $adb -s $dev shell am start -n de.krisenvorrat.app/.MainActivity +``` ### App installieren ```powershell -$adb = "C:\Users\JensR\AppData\Local\Android\Sdk\platform-tools\adb.exe" -& $adb -d install -r "app\build\outputs\apk\debug\app-debug.apk" +& $adb -s $dev install -r "app\build\outputs\apk\debug\app-debug.apk" ``` -`-d` = nur physisches Gerät (nicht Emulator), `-r` = Reinstall. +`-r` = Reinstall ohne Datenverlust. ### App starten ```powershell -& $adb -d shell am start -n de.krisenvorrat.app/.MainActivity +& $adb -s $dev shell am start -n de.krisenvorrat.app/.MainActivity ``` -### Logcat (gefiltert) +### App stoppen ```powershell -& $adb -d logcat --pid=$(& $adb -d shell pidof de.krisenvorrat.app) -v time +& $adb -s $dev shell am force-stop de.krisenvorrat.app +``` + +### Logcat (gefiltert auf App) + +```powershell +& $adb -s $dev logcat --pid=$(& $adb -s $dev shell pidof de.krisenvorrat.app) -v time ``` ### Screenshot vom Gerät +**Wichtig:** `exec-out screencap -p` liefert über Wireless ADB oft korrupte Bilder (Binärdaten-Problem). Stattdessen den **Pull-Workflow** verwenden: + ```powershell -& $adb -d exec-out screencap -p > tmp/device-screenshot.png +# Screenshot auf Gerät speichern, herunterladen, aufräumen +& $adb -s $dev shell screencap -p /sdcard/screenshot.png +& $adb -s $dev pull /sdcard/screenshot.png tmp\device-screenshot.png +& $adb -s $dev shell rm /sdcard/screenshot.png ``` ### App deinstallieren ```powershell -& $adb -d uninstall de.krisenvorrat.app +& $adb -s $dev uninstall de.krisenvorrat.app ``` ---