Android Stuido Ndk-Jni開発(二):Jniにロゴ情報を印刷する
4076 ワード
Android Stuido Ndk-Jni開発(二):Jniにロゴ情報を印刷する
logヘッダファイルのインポート
logを印刷する必要があるc/c++ソースファイルにandroid/logを追加する.hヘッダファイル
LOGマクロ定義の追加
android/logを導入する.hのソースファイルにLOG_を定義するTAGは、ログのマクロ定義を追加し、使いやすい:
上記コードで定義方法は、AndroidにおけるJavaコードのLogにそれぞれ対応する.d(), Log.i(), Log.w(),Log.e(), Log.f()などの方法.
在build.gradleにライブラリを追加
appディレクトリの下にあるbuild.gradleでロードするlogを設定し、defaultConfigに追加します.
ログの印刷
コードで直接使用
完全なコードは次のとおりです.
次に、Build->Make Project、Run->Run'appを実行します.logcat出力結果が表示されます.
ログメソッドはフォーマット出力もサポートしていますよ、また追加します
logcat出力結果を表示するには、次の手順に従います.
logヘッダファイルのインポート
logを印刷する必要があるc/c++ソースファイルにandroid/logを追加する.hヘッダファイル
#include
LOGマクロ定義の追加
android/logを導入する.hのソースファイルにLOG_を定義するTAGは、ログのマクロ定義を追加し、使いやすい:
#ifndef LOG_TAG
#define LOG_TAG "HELLO_JNI"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG ,__VA_ARGS__) // LOGD
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG ,__VA_ARGS__) // LOGI
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG_TAG ,__VA_ARGS__) // LOGW
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG ,__VA_ARGS__) // LOGE
#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL,LOG_TAG ,__VA_ARGS__) // LOGF
#endif
上記コードで定義方法は、AndroidにおけるJavaコードのLogにそれぞれ対応する.d(), Log.i(), Log.w(),Log.e(), Log.f()などの方法.
在build.gradleにライブラリを追加
appディレクトリの下にあるbuild.gradleでロードするlogを設定し、defaultConfigに追加します.
ndk {
moduleName "HelloJni" // HelloJni.so
ldLibs "log", "z", "m"
}
ログの印刷
コードで直接使用
LOGD("LOG from JNI");
完全なコードは次のとおりです.
//
// Created by DRAGON-JIANG on 2016/2/17.
//
#include
#include
#ifndef LOG_TAG
#define LOG_TAG "HELLO_JNI"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG ,__VA_ARGS__) // LOGD
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG ,__VA_ARGS__) // LOGI
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG_TAG ,__VA_ARGS__) // LOGW
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG ,__VA_ARGS__) // LOGE
#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL,LOG_TAG ,__VA_ARGS__) // LOGF
#endif
/*
* Class: com_dj_jni_hellojni_NativeHelper
* Method: getStringFromJni
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_com_dj_jni_hellojni_NativeHelper_getStringFromJni
(JNIEnv *env, jobject obj){
LOGD("LOG from JNI");
return (*env)->NewStringUTF(env,"Hello from JNI !");
}
次に、Build->Make Project、Run->Run'appを実行します.logcat出力結果が表示されます.
ログメソッドはフォーマット出力もサポートしていますよ、また追加します
char *name = "JNI";
LOGD("My name is %s.", name);
logcat出力結果を表示するには、次の手順に従います.