flutter-device-smoke-test

Installation
SKILL.md

Flutter device smoke test

Verify a Flutter app works on a real Android device, producing an evidence line for each claim — a command whose output proves the step happened (a pid, a file, a clean logcat). No assertion without its evidence line.

Steps

  1. Connect. adb devices -l to list; for a wireless device use adb connect <ip>:<port>. Completion: your device serial appears and adb -s <serial> get-state prints device.
  2. Install the APK. adb -s <serial> install -r build/app/outputs/flutter-apk/app-debug.apk. Completion: output contains Success. A 150MB debug APK over wifi takes minutes — give the command a 300s timeout.
  3. Launch. adb -s <serial> shell am start -n <packageId>/.MainActivity, wait ~5s. Completion: adb -s <serial> shell pidof <packageId> returns a pid.
  4. Check for crashes. adb -s <serial> logcat -d | grep -E 'E/flutter|FATAL|AndroidRuntime|Unhandled|LateInitialization|sqlite' | tail -20. Completion: no FATAL/AndroidRuntime/E/flutter lines from your app (ignore other apps' sqlite logs — scope by package or filter them out).
  5. Verify the UI rendered. Screenshot: adb -s <serial> exec-out screencap -p > /tmp/app.png; confirm file /tmp/app.png reports a PNG with device resolution. Note: uiautomator dump shows no text for Flutter apps unless accessibility is enabled — the screenshot, not uiautomator, is the evidence.
  6. Verify storage was created. Inspect the app's private dir: adb -s <serial> shell run-as <packageId> ls -la app_flutter/ then find app_flutter/<wikiRoot> -type f. Completion: expected files exist (e.g. index.sqlite, wiki.yaml). Quoting trap: run-as pkg sh -c '...' mangles nested quotes through adb — pass one simple command at a time, and inspect app_flutter/ (path_provider's documents dir) not files/.
Installs
11
First Seen
Aug 14, 2026
flutter-device-smoke-test — hoangsoft90/ai_skills