Wie zeige ich eine Nachricht von `adb shell` (oder einem Shell-Skript) an?

Ich erwarte, dass es so etwas wie

adb shell am start SomethingArcane ... "Hello, world"

und das Meldungsfeld erscheint auf dem Bildschirm und sagt "Hallo, Welt".

Antworten (2)

Hackige Problemumgehung: DirectFB

Mit DirectFB und Root-Zugriff können Sie den Text direkt auf dem Bildschirm anzeigen, ganz ohne Android.

Ich habe dafür ein Programm implementiert: directfbtext .

( echo "Hello, world"; echo "FLIP"; sleep 2; echo "QUIT" ) |  /h/bin/directfbtext --dfb:fbdev=/dev/graphics/fb0  --dfb:no-vt  /system/fonts/DroidSans-Bold.ttf 30 120 200 255

Beachten Sie, dass es wahrscheinlich nicht so einfach ist, DirectFB unter Android zum Laufen zu bringen, aber ich habe es zufällig bereits konfiguriert.


Update Auf Benutzeranfrage hin habe ich eine „portable“ vorgefertigte Version von directfbtext erstellt und getestet. Einrichten und Ausführen:

  1. Entpacken Sie directfbtext_deps.tar.gz in /data/local/tmp/;
  2. Start adb shell, gehe root ( su);
  3. cd /data/local/tmp/directfbtext;
  4. Symlink von /usr/lib/arm-linux-gnueabi/bis erstellen /data/local/tmp/directfbtext:

    # mount -o remount,rw / /
    # mkdir /usr
    # mkdir /usr/lib
    # ln -s /data/local/tmp/directfbtext /usr/lib/arm-linux-gnueabi
    
  5. Stellen Sie sicher, dass das Display eingeschaltet ist

  6. LD_LIBRARY_PATH=. ./ld-linux.so.3 ./directfbtext --dfb:fbdev=/dev/graphics/fb0 --dfb:no-vt /system/fonts/DroidSans-Bold.ttf --dfb:system=fbdev 30 120 200 255
  7. Geben Sie etwas Text ein, gefolgt von einer Zeile mit der Aufschrift „FLIP“;
  8. Beachten Sie den auf dem Display sichtbaren Text;
  9. Geben Sie "QUIT" ein, um directfbtext zu beenden;
  10. Interagieren Sie mit dem Gerät, damit es die Anzeige aktualisiert und verbleibende Störungen löscht, die von DirectFB verursacht werden.
Vielleicht können Sie sagen, was konfiguriert werden muss?
Hauptsache ist wohl ein Debian in chroot.
Könnten Sie eine Binärdatei bereitstellen? (Oder eine Anleitung zum Kompilieren mit NDK?)
Leider sind statische Binärdateien mit DirectDB schwierig zu bekommen. Das Programm wurde nicht mit Android NDK erstellt und hängt von Debian-Bibliotheken ab. Ich werde jetzt versuchen, eine "semi-portable" Version davon zu hacken.
@ user1147688, Fertig. Sie können versuchen, es zu testen.

FBTrueType-android

Ich habe ein natives Android-Programm FBTrueType-android geschrieben , um TrueType-Schriftarttext mithilfe von ADB direkt auf dem Display des Geräts zu drucken.

Es hat viele Funktionen, darunter das Löschen des Framebuffers (Anzeige) und das Ändern der verwendeten *.ttf-Schriftart, Schriftfarbe, Schriftgröße, x- und y-Positionen.

Es kann auch mit Zygote (Android-Schnittstelle) ausgeführt werden und den Framebuffer von Zygote im Vollbildmodus erfassen.

Ich habe dafür ein Github-Repository eingerichtet, auf das Sie hier zugreifen können. Alternativ können Sie das Repository auch so klonen:

$ git clone https://github.com/mikelinux/fbtruetype-android.git

Sie müssen für die Cross-Kompilierung für ARM eingerichtet werden, die README-Datei enthält vollständige Anweisungen dazu.

Genießen Sie, und bitte posten Sie Ihr Feedback.

Mike