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


更多相关文章

  1. Android应用开发中的风格和主题(style,themes)
  2. Android(安卓)Kotlin开发之Hello World
  3. android设置主题和自定义主题的方法
  4. Android(安卓)进度条功能实现
  5. Android源码内部编译过程总结(Make)(转)
  6. 了解 uri, content provide,包括 data android:host,android:schem
  7. Android(安卓)应用程序之间数据共享—ContentProvider
  8. android 自定义进度条颜色
  9. android重要包的描述

随机推荐

  1. Android(安卓)APP常用图标尺寸规范
  2. Android(安卓)OpenGL 文本显示 LabelMake
  3. Android(安卓)webview 关于返回键和历史
  4. 【React Native开发】 - react-native-sw
  5. 安卓源码搜集 文档(不断更新)
  6. Android(安卓)MVP+Retrofit+RxJava实践小
  7. 当 Activity 以全屏模式运行时,如何允许 A
  8. Android学习笔记——设置EditText只输入
  9. 常用的android studio插件
  10. Android手动显示和隐藏软键盘方法总结