要在ndk中列印日誌,只需要以下三步:
一、在android.mk中新增以下內容:
local_ldlibs := -lm -llog
或者local_ldlibs:=-l$(sysroot)/usr/lib -llog以上兩行**二選一。
注意,這行**要新增在include $(clear_vars)之後,否則沒有效果。比如我有乙個c檔案,乙個cpp檔案,分別是jni1.c和jni3.cpp,那麼你要列印日誌應該這樣新增:
include $(clear_vars)
local_ldlibs := -lm -llog
local_module := jni1
local_src_files := jni1.c
include $(build_shared_library)
include $(clear_vars)
local_ldlibs:=-l$(sysroot)/usr/lib -llog
local_module := jni3
local_src_files := jni3.cpp
include $(build_shared_library)
二、引用標頭檔案
#include
三、定義變數
//定義tag之後,我們可以在logcat通過tag過濾出ndk列印的日誌
#define tag jnitest
// 定義info資訊
#define logi(...) __android_log_print(android_log_info,tag,__va_args__)
// 定義debug資訊
#define logd(...) __android_log_print(android_log_debug, tag, __va_args__)
// 定義error資訊
#define loge(...) __android_log_print(android_log_error,tag,__va_args__)android_log_info是日誌級別,這和logcat中是一一對應的,tag是過濾標籤,__va_args__是我們要列印的實際的日誌內容。
做完上面三步可以列印日誌了:
logi(the string is :%s,str1);注意:列印日誌時如果是字串切不可列印jstring,要將jstring轉換為c 字串然後列印**換方式看前文)。
C 之日誌列印
一 c 日誌輸出到檔案 眾所周知,在c 標準庫中提供了乙個控制台 console 輸出物件 std cout,程式設計師可以呼叫該物件將需要檢視的內容輸出到控制台。除了std cout外,c 標準庫還提供了乙個檔案輸出流,程式設計師可以使用它定乙個流物件,如 std ofstream fout 並關...
NDK開發指南 NDK安裝
android ndk 安裝 安裝 1 安裝需要 android ndk目前可以在linux os x 或者 windows作業系統上使用 windows使用者需要安裝cygwin1.7或以後的版本,注意,現在msys和cygwin1.5現在已經不支援了 你必須搭建了android sdk環境才可以...
iOS開發 常見日誌列印
一 列印當前的函式和行號 我們可以在列印時使用一些預編譯巨集作為列印引數,來列印當前的函式和行號。如 nslog s d obj func line obj 其中 func 和line 都是預編譯的巨集,編譯時會分別替換為當前函式和當前行號。下面是一些常用於列印日誌的巨集。巨集說明 func 列印當...