2011-01-07 16 views
1

Portierung einer C++ App auf Android JNI ... möchte C++ cout und cerr zu Testzwecken zu einem Android TextView oder einer ähnlichen Anzeige routen. Gibt es einen Open-Source-JNI-Adapter, der das bereits tut? Wenn nicht, möchte ich ein paar Tipps, wie man einen solchen Adapter in einer schnellen & schmutzigen Weise schreiben. Danke, dass du diesem Android n00b hilfst.Adapter von C++ Ausgabestream zu einem Android TextView oder gleichwertig?

Antwort

0

Verwenden Sie zu Testzwecken die native Protokollierungsfunktion von Android.

#include <android/log.h> 

__android_log_write(ANDROID_LOG_ERROR, "MyProject", "Hello world"); 
__android_log_print(ANDROID_LOG_ERROR, "MyProject", "The value is %d", value); 

Im Android.mk, fügen liblog Liste Link Quelle:

LOCAL_LDLIBS := -llog 
+0

Dank, kann ich unsere Makros sehen Umschreiben diese zu verwenden. Aber ich bin immer noch daran interessiert, die Nachrichten auf dem Android-Bildschirm in "Echtzeit" zu sehen. –

+0

Muss es der Android-Bildschirm sein (im Gegensatz zu Ihrem Debugger)? Und muss es cout/cerr sein? Ein Telefonbildschirm wird am besten nicht durch Emulieren einer Konsole verwendet. Das heißt, Sie können Ihre selbst erstellten OutputStreams an die JNI-Bibliothek übergeben und Bytes darauf schreiben lassen, was Sie wollen (über JNI-Aufrufe). Was mit den Bytes auf der anderen Seite passiert, bleibt Ihnen überlassen. Sie können sie zu einem TextView oder irgendetwas weiterleiten. Dieser Ansatz hat viele Facetten; Ich bin mir nicht sicher, über was du fragst. Aber es für die Debug-Ausgabe zu verwenden, ist ein Overkill. –

+0

Ich möchte unsere bestehende Linux-Befehlszeilen-App im Android-Emulator ausführen, ohne die gesamte Konsolenausgabe neu schreiben zu müssen. Alles, was einer "Konsole" ähnelt, funktioniert. Es muss nicht der (emulierte) Telefonbildschirm sein. Natürlich ist der Android-Logger die richtige Wahl für den Einsatz, aber ich bin in der Proof-of-Concept-Phase. –