jni中添加打印,能在android studio中查看到的demo
时间: 2024-03-19 13:46:01 浏览: 69
好的,以下是一个能在 Android Studio 中查看到打印信息的 JNI 示例程序:
```c
#include <jni.h>
#include <android/log.h>
#define LOG_TAG "MyApp-JNI"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
JNIEXPORT void JNICALL
Java_com_example_MyClass_print(JNIEnv *env, jobject obj, jstring string) {
const char *str = (*env)->GetStringUTFChars(env, string, NULL);
LOGI("Received string: %s", str);
(*env)->ReleaseStringUTFChars(env, string, str);
}
```
这个示例程序中,我们使用了 Android NDK 提供的 `__android_log_print()` 函数来打印信息。该函数可以将信息输出到 Android 系统的日志中,从而让我们在 Android Studio 的 Logcat 窗口中查看到打印信息。
注意,在使用 `__android_log_print()` 函数前,我们需要在代码中定义一个 `LOG_TAG` 宏,用于标识该应用的日志信息。另外,我们还定义了两个辅助宏 `LOGI()` 和 `LOGE()`,用于打印不同级别的信息。
在实际应用中,你可以将上述代码编译成动态链接库(比如 `.so` 文件),然后在 Java 代码中通过 `System.loadLibrary()` 加载该库,从而让 Java 程序调用 JNI 函数并输出日志信息。在 Android Studio 中,你可以通过 Logcat 窗口来查看这些日志信息。
阅读全文