本文介紹Eclipse 的 NDK 環境如何打印log信息
如何編譯NDK項目請參考 NDK使用流程
流程
- 在C中引用頭文件,定義TAG、LOG 宏
- 配置 Android.mk
- Java編寫測試方法
引用android/log.h 頭文件
#include <android/log.h>
添加宏 TAG 、LOGV
#define TAG "Gmw"
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__)
ANDROID_LOG_VERBOSE 枚舉類型 用來區分LOG等級,比如紅色的error醬紫。
TAG log輸出的key標記
__VA_ARGS__ 要打印的log信息
2.編輯Android.mk
添加 llog是有關log的一個庫
# for logging
LOCAL_LDLIBS += -llog
添加完成之後如下
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello
LOCAL_SRC_FILES := hello.c
# for logging
LOCAL_LDLIBS += -llog
include $(BUILD_SHARED_LIBRARY)
3.編寫Java測試方法可參考NDK使用流程,然後編譯,看運行效果
在C中寫輸出的log信息
#include<stdio.h>
#include<stdlib.h>
#include "com_example_myhellojni_MainActivity.h"
#include <android/log.h>
#define TAG "Gmw"
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__)
JNIEXPORT jstring JNICALL Java_com_example_myhellojni_MainActivity_getStringFromC(
JNIEnv *env, jclass jclass) {
LOGV("hello from native");
return (*env)->NewStringUTF(env, "Hello NDK");
}
log輸出截圖