/* * Override printf, puts, putchar */ JNIEnv* jniEnv; void callOutputText(const char* text) { JNIEnv *env = jniEnv; jstring javaMsg = (*env)->NewStringUTF(env, text); (*env)->CallVoidMethod(env, activityObj, outputTextId, javaMsg); (*env)->DeleteLocalRef(env, javaMsg); } int printf(const char * format, ... ) { char buff[256] = {}; va_list args; va_start (args, format); const int result = vsnprintf(buff, sizeof(buff), format, args); va_end (args); if (result > 0) { callOutputText(buff); } return result; } int puts(const char *s) { callOutputText(s); callOutputText("\n"); return strlen(s); } int putchar(int c) { char buff[2] = { c, '\0' }; callOutputText(buff); return c; }