| 12345678910111213141516171819202122232425262728293031323334 |
- #!/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 <ip:port> (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
|