Android NDK :在 C語言代碼中輸出Log
本篇文章來源於 Linux公社網站(www.linuxidc.com) 原文連接:http://www.linuxidc.com/Linux/2012-07/66106.htmAndroid NDK 開發時,想要在 .c 文件中打印一些調試信息的話,是不能使用 printf() 方法的,NDK 根本不支持,就算寫了,在 linux
LogCat 中也不會顯示,正確的方式應該是 調用NDK 下的log.h 來打印Log 日誌,具體方法以下: android
1. 導入log頭文件:在你使用的 .c/ .cpp 文件中,導入 log.h 頭文件: #include<android/log.h> 函數
2. 定義LOG 函數:先定義一個全局變量,再定義一些輸出的LOG函數:
1.#define LOG "ffmpegDemo-jni" // 這個是自定義的LOG的標識
2.#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG,__VA_ARGS__) // 定義LOGD類型
3.#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG,__VA_ARGS__) // 定義LOGI類型
4.#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG,__VA_ARGS__) // 定義LOGW類型
5.#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG,__VA_ARGS__) // 定義LOGE類型
6.#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL,LOG,__VA_ARGS__) // 定義LOGF類型 網站
上述代碼中定義的函數,分別對應於Android 的Java代碼中的 Log.d(), Log.i(), Log.w(),Log.e(), Log.f()等方法; spa
3. 使用上述方法:在.c 代碼中直接按照一下方式書寫:
1.LOGD(LOG, "這是Debug的信息");
2.LOGE(LOG, "程序錯誤!!!"); 調試
除此以外,更能夠給在打印時帶上一些變量:
1.int width=10;
2.int height=20;
3.LOGI(LOG, "長和寬分別爲 %d ,%d「,width,height); 日誌
這種方式更加靈活,很是相似於 C語言中的 printf()函數。 htm
全文結束,但願能給你們一些幫助~ 開發
本篇文章來源於 Linux公社網站(www.linuxidc.com) 原文連接:http://www.linuxidc.com/Linux/2012-07/66106.htm get