docs(device): Wireless ADB workflow und Screenshot-Pull dokumentiert

- Wireless ADB als bevorzugten Verbindungsweg dokumentiert
- Pull-Workflow für Screenshots (exec-out liefert über WLAN korrupte Bilder)
- Hinweis: adb -d nur USB, Wireless braucht adb -s <IP>:<PORT>
- Vollständiger Wireless-Deploy-Workflow (Build/Install/Launch)
This commit is contained in:
Jens Reinemann 2026-05-16 12:55:35 +02:00
parent d97882cfd6
commit 1236d61543

View file

@ -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 <IP>:<KOPPLUNGS-PORT> <CODE>
# 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 <IP>:<VERBINDUNGS-PORT>
# 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 <IP>:<PORT>` 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 <IP>:<PORT>`).
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
```
---