歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android NDK :在 C語言代碼中輸出Log

Android NDK :在 C語言代碼中輸出Log

日期:2017/3/1 10:15:43   编辑:Linux編程

Android NDK 開發時,想要在 .c 文件中打印一些調試信息的話,是不能使用 printf() 方法的,NDK 根本不支持,就算寫了,在

LogCat 中也不會顯示,正確的方式應該是 調用NDK 下的log.h 來打印Log 日志,具體方法如下:

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()等方法;

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()函數。

全文結束,希望能給大家一些幫助~

Copyright © Linux教程網 All Rights Reserved