Android JNI中记录log
16lz
2021-01-23
Android JNI中是有提供相关的接口来记录log的,这样的话,和java写的代码一样,可以直接在logcat中查看。如果代码里都是android提供的log api,一旦遇到新的需求,改起来会很麻烦,每个地方都需要修改,所以说封装android提供的log api是很有必要的。
====
android提供的常用api
__android_log_write(ANDROID_LOG_INFO,"taghere","messagehere");__android_log_print(ANDROID_LOG_INFO,"sometag","testint=%d",testInt);
====
如何使用?
1. 包含头文件
#include <android/log.h>
2. 链接相关的库文件
android.mk需要加上引入库
LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
====
封装
#include<stdio.h>#include<stdarg.h>#include<android/log.h>#include<time.h>staticconstchar*TAG="uninstall";voidkesyPrintf(constchar*format,...){#ifdefKE_DEBUGcharbuf[2048]="\0";va_listargs;va_start(args,format);vsprintf(buf+strlen(buf),format,args);va_end(args);//可以添加功能,在这里可以把log记录在文件中//-----__android_log_write(ANDROID_LOG_INFO,TAG,buf);#endif}
. KE_DEBUG是一个宏定义,作为一个开关,只有定义了KE_DEBUG,才会输出log。可以在代码中定义,也可以在mk文件中定义。
. 这样就可以像C语言中的printf那样打印log了
kesyPrint("Hello world\n");
kesyPrint("abc---%s", "efg");
-------------------欢迎评头品足-----by jacksonke
更多相关文章
- Android中使用xml保存数据(xml文件序列化)及使用pull解析xml文件
- 对android里布局文件当中的TextView对象设置事件监听,但是不响应
- Android解析xml文件
- android创建隐藏文件或者文件夹,并对其读写操作
- [基础知识]全面认识AndroidManifest.xml文件(二)
- android设置主题和自定义主题的方法
- android下修改hosts文件不起作用(无效)的解决办法
- Android JSON解析示例代码