#!/usr/bin/env bash # Capture l'écran d'une montre connectée en adb et indique la part de pixels # non-noirs. Un écran noir uniforme (0 %) alors que l'app est au premier plan # trahit un problème de rendu Compose (voir AGENTS.md). # # Usage : scripts/screencap-check.sh [ip:port] set -euo pipefail ADB="${ANDROID_HOME:-$HOME/Android/Sdk}/platform-tools/adb" SERIAL="${1:-${WATCH_SERIAL:-}}" [ -n "$SERIAL" ] || { echo "Usage: $0 (ou WATCH_SERIAL=ip:port)"; exit 1; } OUT="$(mktemp --suffix=.png)" "$ADB" -s "$SERIAL" exec-out screencap -p > "$OUT" python3 - "$OUT" <<'PY' import sys from PIL import Image path = sys.argv[1] im = Image.open(path).convert("RGB") px = im.load() w, h = im.size total = nonblack = 0 for y in range(0, h, 2): for x in range(0, w, 2): total += 1 if px[x, y] != (0, 0, 0): nonblack += 1 ratio = 100.0 * nonblack / total if total else 0.0 print(f"capture {path} {w}x{h} : {ratio:.1f}% de pixels non-noirs ({nonblack}/{total})") if ratio == 0.0: print("-> écran entièrement noir : suspect (veille ? rendu Compose cassé ?)") PY