adbx
Ich baue Android-Apps auch unter Zuhilfenahme von KI. Wenn KI auf dem laufenden Android-Emulator etwas nachschauen wollte, hat sie einen Screenshot gemacht, die Pixel-Position eines Buttons bestimmt - und daneben getippt. Daher habe ich mir adbx als Werkzeug gebaut: Über die Accessibility API gibt das Tool eine kurze, nummerierte Liste aller Buttons und Beschriftungen samt Position. Das funktioniert deutlich zuverlässiger und schneller als der Screenshot-Approach. Es ist ein Kommandozeilen-Tool, ich kann es also genauso gut selbst im Terminal oder in einem Skript benutzen.
Langsam war vor allem Androids eigenes Werkzeug zum Auslesen des Bildschirms. Bei jedem Aufruf hat es von vorn gestartet und nochmal eine volle Sekunde gewartet, um sicherzugehen, dass die Frames sich nicht mehr aktualisieren. adbx legt einen kleinen Helfer aufs Handy, der ständig verbunden bleibt. Den Bildschirm zu lesen dauert statt 2 Sekunden dadurch eher 0,2 Sekunden.
Der Ansatz funktioniert nicht überall. Beispielsweise zeichnen die meisten Spiele jeden Frame selbst und haben oft keine Beschriftungen, die sich über die Accessibility API auslesen ließen. Als Fallback nimmt adbx dann einen Screenshot mit eingezeichnetem Koordinatengitter.
- Liest den Bildschirm in rund 0,2 s, Androids eigenes Tool braucht 2
- Getestet auf Android 8.1, 13 und 17
- Keine App auf dem Handy, keine Abhängigkeiten auf dem Rechner
- Open Source, Apache 2.0
Interesse an etwas Ähnlichem?