久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > Android日志(zhi)消(xiao)息的生(sheng)成

Android日志消息的生(sheng)成 時間:2018-09-25      來源:未知

日志是(shi)故(gu)障處理(li)重要(yao)的(de)部分(fen),但(dan)是(shi)它難以實現,特別是(shi)在那些使用兩個不同機(ji)器進(jin)行(xing)開(kai)發和(he)(he)執行(xing)的(de)移動平臺上(shang)。Android有一個擴展日志框架,用于對系統范圍內Android系統本(ben)身的(de)信息(xi)及應用程序的(de)信息(xi)集中做日志。它還(huan)提供了一組用戶級應用程序以查看和(he)(he)過濾(lv)這(zhe)些日志

Android 日(ri)(ri)(ri)志(zhi)框架是(shi)名字為logger的(de)內(nei)核(he)模塊。隨時隨地地對平臺上(shang)的(de)任何信(xin)息進行日(ri)(ri)(ri)志(zhi)會產生大量信(xin)息,從(cong)而使得查看(kan)和分析浙西(xi)日(ri)(ri)(ri)志(zhi)變(bian)得非(fei)常困(kun)難(nan)。為了簡化這個過程,Android日(ri)(ri)(ri)志(zhi)框架吧日(ri)(ri)(ri)志(zhi)消息分成4個日(ri)(ri)(ri)志(zhi)緩(huan)沖(chong)區

Main 主要(yao)應用(yong)程序(xu)的日志信息

Event 系(xi)統事件(jian)

Radio Radio 相關(guan)的日志信息

System 調(diao)試(shi)時產(chan)生的低級(ji)系統(tong)調(diao)試(shi)信息

這4個緩沖區(qu)以偽設備的(de)形式保(bao)(bao)存(cun)(cun)在(zai)(zai)dev/log系統目錄下。因(yin)為(wei)移(yi)動平臺上(shang)的(de)I/O操作(zuo)代價(jia)很大,所(suo)以日志信(xin)息(xi)要保(bao)(bao)存(cun)(cun)在(zai)(zai)內(nei)(nei)存(cun)(cun)中(zhong)(zhong)(zhong),而不能保(bao)(bao)存(cun)(cun)在(zai)(zai)永(yong)久(jiu)性存(cun)(cun)儲(chu)(chu)器(例如磁盤中(zhong)(zhong)(zhong))。為(wei)了有(you)效的(de)控制對存(cun)(cun)儲(chu)(chu)日志信(xin)息(xi)的(de)保(bao)(bao)存(cun)(cun)在(zai)(zai)內(nei)(nei)存(cun)(cun)中(zhong)(zhong)(zhong)

存儲空(kong)間的充分(fen)利用

MAIN,RADIO,SYSTEM 64kb

256KB 的(de)日志緩沖區(qu)

開發(fa)者不希望直(zhi)接與(yu)logger內核模(mo)塊進(jin)行交互,Android運行庫(ku)系統(tong)提供了一組API調用(yong)以便(bian)于java代(dai)(dai)碼(ma)(ma)和原生(sheng)代(dai)(dai)碼(ma)(ma)想(xiang)logger內核模(mo)塊發(fa)送日志信(xin)息。通過android/log.h頭文件(jian)來展(zhan)示原生(sheng)代(dai)(dai)碼(ma)(ma)的日志API。為(wei)了使用(yong)日志函數(shu),原生(sheng)代(dai)(dai)碼(ma)(ma)需要先向(xiang)包含該(gai)頭文件(jian)。

#include

除(chu)了要包含合(he)適的頭文(wen)件,還需要動態修改(gai)Android.mk文(wen)件從而(er)將原(yuan)生模塊與(yu)日志庫進(jin)行(xing)鏈(lian)接,可以通(tong)過使用構建系統變量(liang)LOCAL_LDLIBS完成操作,

LOCAL_LALIBS += -llog

此(ci)語法必(bi)須在include前面

日志消息

通過日志API發送給logger模塊的(de)每個日志條目(mu)都具有(you)以下字段:

Priority:取(qu)值分別為(wei)verbose,debug,info,warning,error和fatal,表示日志(zhi)的重要程(cheng)度,支持的日志(zhi)優先級在android/log.h頭文件(jian)中聲(sheng)明,

支(zhi)持的日志優(you)先(xian)級

typedef enmu android_LogPriority

{

ANDROID_LOG_VERBOSE,

ANDROID_LOG_DEBUG,

ANDROID_LOG_INFO,

ANDROID_LOG_WARN,

ANDROID_LOG_ERROR

ANDROID_LOG_FATAL,

}android_LogPriority;

生(sheng)成簡單的日志消(xiao)息

 _android_log_write(ANDROID_LOG_WARN,"hello-jni","warning log.");

生成格式化的日志消息

_android_log_print(ANDROID_LOG_ERROR,"hello-jni",

"Failed with errno %d",erron);

//參數分(fen)別是日志優(you)先級(ji),日志標簽和日志消息

3、_android_log_vprint:粗糊了參(can)數(shu)傳(chuan)遞(di)方式外,其他功能與(yu)_android_log_print 函數(shu)完(wan)全相(xiang)同,_android_log_vprint函數(shu)用va_list傳(chuan)遞(di)附加參(can)數(shu),而_android_log_print函數(shu)中以連續(xu)參(can)數(shu)的凡是改為傳(chuan)遞(di)參(can)數(shu),如果想要調用日志(zhi)函數(shu)時傳(chuan)遞(di)給當前函數(shu)的參(can)數(shu)個數(shu)動(dong)態變化時,該函數(shu)的優勢(shi)就(jiu)會體(ti)現(xian)出來。

void log_verbose(const char* format,...)

{

va_list args;

va_start(args,format);

_android_log_vprint(ANDROID_LOG_VERBOSS,"hello-jni",format,args);

va_end(args);

}

void example()

{

log_verbose("Error is now %d",error);

}

上一篇:智能手環客戶端詳細設計

下一篇:init可執行程序的結構

熱點(dian)文章推薦
華清(qing)學員就業(ye)榜單
高薪學員(yuan)經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓(xun)洽(qia)談(tan)專線(xian):010-82525379 院(yuan)校(xiao)合作(zuo)洽(qia)談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部