Benutzer-Werkzeuge

Webseiten-Werkzeuge


projects:gforth-android:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
projects:gforth-android:start [2013-06-06 21:27] – Externe Bearbeitung 127.0.0.1projects:gforth-android:start [2021-11-26 21:16] (aktuell) bernd
Zeile 1: Zeile 1:
-====== Gforth um Android in Forth zu programmieren ======+====== Gforth — GNU Forth für Android ======
  
 Ziel ist es, Gforth als Programmierumgebung für Android zu verwenden. Ziel ist es, Gforth als Programmierumgebung für Android zu verwenden.
 +
 +===== Pfad =====
 +
 +Wenn im folgenden von `/sdcard` die Rede ist, dann ist das je nach Gerät und Android-Version ein anderern Pfad.
 +
 +    s" HOME" getenv type
 +
 +würde `/sdcard/gforth/home` ergeben; alles vor `gforth/home` ist der gerätespezifische Präfix.
  
 ===== Stand der Dinge ===== ===== Stand der Dinge =====
  
-  * Es gibt ein [[http://bernd-paysan.de/Gforth.apk|Gforth.apk]]das man direkt ab Android 2.installieren kann +  * Es gibt [[https://play.google.com/store/apps/details?id=gnu.gforth|Gforth im Play Store]] das man direkt ab Android 4.installieren kann, Android 2.3-Support wurde am 31.3.2018 aufgegeben, weil es zu alt ist für diverse Features. 
-  * Das kann über OpenGL eine Terminal-Emulation zeigen oder einen Terminal-Server bedienen (in der Datei /sdcard/gforth/site-forth/starta.fs festgelegt)+  * Das kann über OpenGL eine Terminal-Emulation zeigen oder einen Terminal-Server bedienen (in der Datei ''/sdcard/gforth/site-forth/starta.fs'' festgelegt). Den Terminal-Server kann man mit einem einfachen ''t'' und Return schnell vom Terminal starten, und sich dann mit ''telnet //adresse// 4444'' einloggen. Für das Gerät in der ''.telnetrc'' im Home-Verzeichnis ''//hostname// mode character'' eintragen.
   * Touchs werden auch schon erkannt, und der Menü-Button/Softkey togglet die Softwaretastatur   * Touchs werden auch schon erkannt, und der Menü-Button/Softkey togglet die Softwaretastatur
  
-Beim ersten Mal Starten packt die App die Gforth-Dateien auf die SD-Karte aus. Das sind ein paar Megabyte, und dauert deshalb. Gforths Loader kann in dem Zustand noch nichts ausgebenund auch nicht auf Eingaben reagierenalso einfach etwas GeduldWenn er fertig istwird das OpenGL-Terminal gestartet.+Beim ersten Mal Starten packt die App die Gforth-Dateien auf die SD-Karte aus. Das sind ein paar Megabyte, und dauert deshalb. Gforths Loader zeigt in dem Zustand einen Spinnerder am Ende kurz die Message "done; restart Gforth" anzeigt. Falls diese länger sichtbar bleibtsollte man Gforth killen und neustarten. 
 + 
 +Das Terminal verwendet einen Fragment Shaderder weitgehend selbständig ein farbiges ASCII-Terminal realisiert - es bekommt dazu zwei Texturen, eine mit dem Zeichensatz, die andere mit Zeichen und Farbinformationen. Da dauert dann das Update des Terminal-Screens nur einige Millisekunden - so wie früher auch. Das Terminal ist auf einigen billigen Handys mit lausigen OpenGL-Implementierungen getestet, sollte also überall funktionieren.
  
-Das Terminal verwendet einen Fragment Shader, der weitgehend selbständig ein farbiges ASCII-Terminal realisiert - es bekommt dazu zwei Texturen, eine mit dem Zeichensatz, die andere mit Zeichen und Farbinformationen. Da dauert dann das Update des Terminal-Screens nur einige Millisekunden - so wie früher auch. +Als Tastaturen empfehle ich:
-===== Historie =====+
  
-Zunächst konnte man Gforth als Terminal-Programm in der [[http://kevinboone.net/kbox.html|KBOX]] benutzenDas ist eine Mini-Linux-Distribution in einem Androidterm, die auch Debian-Pakete nachinstallieren kann (aber nicht wieder löschen... falls man eine neue Gforth-Version installieren will, muss man die ganze KBOX deinstallieren und wieder installieren).+  * [[https://play.google.com/store/apps/details?id=org.pocketworkstation.pckeyboard|Hackers Keyboard]] 
 +  * [[https://play.google.com/store/apps/details?id=de.ubuntix.android.mygermankeyboard|Deutsche Tastatur]] 
 +  * [[https://play.google.com/store/apps/details?id=com.jb.gokeyboard|Go Keyboard]]
  
-Gforth installiert seine Daten auf der SD-Karte, nur die Binaries werden in der KBOX installiertAls Tastatur empfehle ich das GO Keyboardweil das auch einen Block mit Cursortasten und anderen Sondertasten hatdie sehr nützlich sind.+Da Android-Apps nicht über die Kommandozeile gestartet werden, kann man Optionen für den Start in die Datei ''/sdcard/gforth/home/.options'' eintragen. Jede Option eine Zeile. ''-d64k'' setzt z.B. den Stack auf 64kB''-m16M'' das Dictionary auf 16MBsiehe [[http://www.complang.tuwien.ac.at/forth/gforth/Docs-html/Invoking-Gforth.html]] 
 +===== Beispiele =====
  
-Zunächst installiert man also die KBOX. Man erhält dann auf der SD-Karte unter ''kbox_home/app_''<//nummer//> ein Home-Verzeichnis. Darin kopiert man den aktuellen [[http://bernd-paysan.de/gforth_0.7.9-20120627_arm.deb|Gforth-Android-Snapshot]]. Danach startet man das KBOX-Terminal, und gibt folgende Kommandos ein:+Alle Android-Beispiele finden sich in ''/sdcard/gforth/<version>/minos2''Es gibt
  
-''ln -/sdcard $KBOX'' \\ +  * ''[[https://github.com/forthy42/gforth/tree/master/minos2/gl-sample.fs|minos2/gl-sample.fs]]'': Eine einfache OpenGL-Demo 
-''dpkg -i gforth_0.7.9-20120627_arm.deb'' \\ +  ''[[https://github.com/forthy42/gforth/tree/master/minos2/omx-example.fs|minos2/omx-example.fs]]'': Spielt Videos ab.  Lade mein Beispielvideo [[http://bernd-paysan.de/jb.mkv|Jingle Bells]] als Test-Stream nach ''/storage/extSdCard/Filme'', dann kann man es mit ''jb'' abspielen, oder jede andere Datei mit ''"<filename>" play-ts'' für MPEG Transport Streams, oder ''play-mkv'' für Matroska. 
-''gforthmi -''''-system''+  ''[[https://github.com/forthy42/gforth/tree/master/minos2/gl-slideshow.fs|minos2/gl-slideshow.fs]]'': Zeigt eine Slideshow.  Lege Bilder in ein Verzeichnis, und füge eine Liste der Dateinamen (mit Pfad). Lade diese Liste mit ''"<slidelist>" slide-show''
 +  * ''[[https://github.com/forthy42/gforth/tree/master/minos2/android-recorder.fs|minos2/android-recorder.fs]]'': Zeichnet ein Video auf, wenn man ''camera-test'' aufruft. Das aufgezeichnete Video wird in ''/storage/extSdCard/Filme/test.mp4'' abgelegt. 
 +  * ''[[https://github.com/forthy42/gforth/tree/master/unix/sensors.fs|unix/sensors.fs]]'': Liest die Sensoren aus.
  
-Wenn alles geklappt hat, kann man jetzt mit ''gforth'' Gforth starten.+===== Troubleshooting =====
  
-===== Bekannte Probleme (Historie) =====+Gforth schreibt ein Log in die Dateien ''/sdcard/gfortherr.log'' und ''/sdcard/gforthout.log''. Falls etwas schief geht, erst mal hier nachsehen, ob eine Fehlermeldung zu finden ist. Sollte eine Quelldatei fehlen oder kaputt sein, hilft es, ''/sdcard/gforth/'' zu löschen, wobei es eigentlich reicht, im Unterordner mit der aktuellen Versionsnummer die Datei ''sha256sum'' zu löschen. Manchmal verschieben sich Dateien nach einem Update, dann sollte man ''/sdcard/gforth/'' löschen, damit die alten Dateien auch wirklich verschwinden. 
 +===== Dokumentation =====
  
-  * Auf Android 2.3 kann man einen SIGSEGV anscheinend nur einmal abfangenAndere Signale (Floating Point Exceptions) gehen öfter. +Gforth hat ein [[http://www.complang.tuwien.ac.at/forth/gforth/Docs-html/|dickes Manual]]das es hier auch als {{:projects:gforth-android:gforth-ebook.pdf|eBook PDF}} gibt (einige nicht umbrechbare Texte sind in der eBook-Version rechts abgeschnitten).
-  * Das Herunterladen der Debian-Datei mit dem Smartphone selbst scheitert bei Googles Browser am unbekannten Dateityp - mit dem von mir benutzen Dolphin Browser gibt's dieses Problem nichtWir haben uns beim "Install Fest" mit Übertragung via Bluetooth geholfen. +
-  * Die Variante des Android-Terminalsdie in der KBOX verwendet wird, hat nur eine Fontgröße. Die Änderung der Einstellung bewirkt nichts. +
-  * ''dpkg -gforth'' führt in der KBOX zu einem Segfault, d.h. um eine neue Version zu installieren, muss man auch die ganze KBOX deinstallieren (sie nennt sich "Terminal Emulator"). Am besten man schreibt die von Gforth durchzuführenden Schritte in eine Datei ''gf'' im Home-Verzeichnis der KBOX, und führt die beim Neuinstalieren mit ''bash gf'' aus (executable kann man sie nicht machen, weil das auf dem SDCARD-Dateisystem FAT32 nicht geht). +
-  * Die KBOX ließ sich auf dem billigen Huawei-Androiden nicht installieren, auf dem Galaxy S2 und auf Motorola Defy+ gibt's keine Probleme +
-  * Die KBOX läuft erst ab Android 2.3+
projects/gforth-android/start.1370546861.txt.gz · Zuletzt geändert: 2013-06-06 22:00 (Externe Bearbeitung)