7 KiB
| name | description |
|---|---|
| android-device | App auf echtes Android-Handy (Samsung S24 Ultra) deployen, USB-Debugging, Wireless ADB, Logcat auf physischem Gerät. Trigger-Phrasen: 'echtes Handy', 'physisches Gerät', 'USB Debugging', 'Samsung', 'S24', 'auf dem Handy testen', 'Wireless ADB', 'Device'. |
Skill: Android Device (Samsung S24 Ultra)
Deployt die Bollwerk-App auf das physische Samsung Galaxy S24 Ultra.
Gerätedaten
| Eigenschaft | Wert |
|---|---|
| Modell | Samsung Galaxy S24 Ultra |
| Display | 6.8" QHD+ (3120 × 1440), 505 PPI |
| Android-Version | Android 14+ (API 34+) |
| SoC | Snapdragon 8 Gen 3 |
| RAM | 12 GB |
Ersteinrichtung (einmalig)
1. USB-Debugging aktivieren
Auf dem Samsung S24 Ultra:
- Einstellungen → Über das Telefon → Softwareinformationen
- Buildnummer 7× tippen → Entwickleroptionen werden aktiviert
- Einstellungen → Entwickleroptionen:
- USB-Debugging aktivieren
- USB-Debugging-Autorisierungen widerrufen (falls Probleme)
- Optional: Bildschirm beim Laden aktiv lassen aktivieren
2. USB-Verbindung
- Samsung mit USB-C-Kabel an PC anschließen
- Auf dem Handy: USB-Debugging zulassen? → Immer von diesem Computer zulassen → OK
- Prüfen:
C:\Users\JensR\AppData\Local\Android\Sdk\platform-tools\adb.exe devices -l
Erwartete Ausgabe:
XXXXXXXXXXXXXXXX device product:dm3q model:SM_S928B device:dm3q transport_id:N
3. Wireless ADB (bevorzugt – kein Datenkabel nötig)
Voraussetzung: PC und Handy im selben WLAN (aktuell: funkbert).
- Auf dem Handy: Einstellungen → Entwickleroptionen → Drahtloses Debugging aktivieren
- "Gerät koppeln mit Kopplungscode" antippen → IP:Port und 6-stelligen Code merken
- Am PC koppeln:
$adb = "C:\Users\JensR\AppData\Local\Android\Sdk\platform-tools\adb.exe"
& $adb pair <IP>:<KOPPLUNGS-PORT> <CODE>
# Beispiel: & $adb pair 192.168.68.107:36257 644638
- Verbinden (der Verbindungsport steht unter "IP-Adresse und Port" im Drahtloses-Debugging-Menü – anderer Port als der Kopplungsport!):
& $adb connect <IP>:<VERBINDUNGS-PORT>
# Beispiel: & $adb connect 192.168.68.107:42539
- Prüfen:
& $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.
Robustes Python-Deployment (empfohlen)
Neues Skript: .github/skills/android-device/deploy-device.py
# Standard: Build + Device erkennen + Install + Launch
python ".github/skills/android-device/deploy-device.py" --repo-root "X:\bollwerk"
# Explizites Wireless-Geraet
python ".github/skills/android-device/deploy-device.py" --repo-root "X:\bollwerk" --serial "192.168.68.107:42539"
# Ohne Build (wenn APK schon gebaut), nur Install
python ".github/skills/android-device/deploy-device.py" --repo-root "X:\bollwerk" --skip-build --no-launch
Funktionen:
- ADB-Autodetect ueber
--adb,ANDROID_SDK_ROOT/ANDROID_HOMEoderlocal.properties - Robuste Device-Erkennung (USB oder Wireless)
- Install-Retries mit klaren Fehlern
- Definierte Exitcodes (
0Erfolg,1Fehler)
# App bauen + auf Gerät installieren + starten (nur USB)
& ".github/skills/android-build/android-dev.ps1" -Action deploy-device
# Nur installieren (nur USB)
& ".github/skills/android-build/android-dev.ps1" -Action install-device
# App starten (nur USB)
& ".github/skills/android-build/android-dev.ps1" -Action launch -Target device
# Logcat vom Gerät (nur USB)
& ".github/skills/android-build/android-dev.ps1" -Action logcat -Target device
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.
$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)
$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:\bollwerk
.\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.bollwerk.app/.MainActivity
App installieren
& $adb -s $dev install -r "app\build\outputs\apk\debug\app-debug.apk"
-r = Reinstall ohne Datenverlust.
App starten
& $adb -s $dev shell am start -n de.bollwerk.app/.MainActivity
App stoppen
& $adb -s $dev shell am force-stop de.bollwerk.app
Logcat (gefiltert auf App)
& $adb -s $dev logcat --pid=$(& $adb -s $dev shell pidof de.bollwerk.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:
# 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
& $adb -s $dev uninstall de.bollwerk.app
Bekannte Probleme
1. unauthorized in adb devices
Das Handy fragt nach USB-Debugging-Berechtigung, die noch nicht bestätigt wurde.
Lösung:
- Display entsperren
- Dialog USB-Debugging zulassen? bestätigen
- Falls kein Dialog: Entwickleroptionen → USB-Debugging-Autorisierungen widerrufen → USB neu anschließen
2. no devices/emulators found
Checkliste:
- USB-Kabel prüfen (manche Kabel sind nur zum Laden)
- USB-Debugging aktiviert?
- ADB-Daemon neu starten:
& $adb kill-server; & $adb start-server - Samsung-USB-Treiber installiert?
3. INSTALL_FAILED_UPDATE_INCOMPATIBLE
Die App ist mit einem anderen Signaturschlüssel installiert.
Lösung:
& $adb -d uninstall de.bollwerk.app
& $adb -d install "app\build\outputs\apk\debug\app-debug.apk"
4. Samsung-spezifisch: App wird von Knox blockiert
Samsung Knox kann Debug-Apps blockieren. In Entwickleroptionen → Apps über USB installieren aktivieren.