转载请注明出处:http://blog.csdn.net/awebkit


android中的插件开发中的示例代码已经给我们说明了如何打log,参看示例代码main.cpp

    for (int i = 0; i < argc; i++) {        if (!strcmp(argn[i], "DrawingModel")) {            if (!strcmp(argv[i], "Bitmap")) {                model = kBitmap_ANPDrawingModel;            }               else if (!strcmp(argv[i], "Surface")) {               model = kSurface_ANPDrawingModel;            }               gLogI.log(kDebug_ANPLogType, "------ %p DrawingModel is %d", instance, model);            break;        }       }   
我们可以使用gLogI.log打印调试信息。

gLogI的定义如下

ANPLogInterfaceV0           gLogI;

ANPLogInterfaceV0的定义如下(Android_npapi.h)

struct ANPLogInterfaceV0 : ANPInterface {    /** dumps printf messages to the log file        e.g. interface->log(instance, kWarning_ANPLogType, "value is %d", value);     */    void (*log)(ANPLogType, const char format[], ...);};
该结构的赋值如下(ANPLogInterface.cpp)
static void anp_log(ANPLogType logType, const char format[], ...) {    va_list args;    va_start(args, format);    android_LogPriority priority;    switch (logType) {        case kError_ANPLogType:            priority = ANDROID_LOG_ERROR;            break;        case kWarning_ANPLogType:            priority = ANDROID_LOG_WARN;            break;        case kDebug_ANPLogType:            priority = ANDROID_LOG_DEBUG;            break;        default:            priority = ANDROID_LOG_UNKNOWN;            break;    }    LOG_PRI_VA(priority, "plugin", format, args);    va_end(args);}void ANPLogInterfaceV0_Init(ANPInterface* value) {    ANPLogInterfaceV0* i = reinterpret_cast<ANPLogInterfaceV0*>(value);    i->log = anp_log;}
而LOG_PRI_VA的调用关系如下

LOG_PRI_VA@Log.handroid_vprintLog@Log.h __android_log_vprint@Log.h__android_log_write@logd_write.cwrite_to_log@logd_write.c__write_to_log_init@logd_write.c__write_to_log_kernel@logd_write.cwritev@uio.c


注:

1. 插件的打印信息的channel为plugin

2. android系统据我所知,只有如下log会受到是否打开DEBUG的影响

LOGV* LOG_FATAL*

更多相关文章

  1. Android Studio(二):快捷键设置、插件安装
  2. RadioButton和CheckBox自定义按钮图片的样式
  3. Android自定义控件布局刷新自定义控件回到初始位置问题的解决
  4. Android declare-styleable:自定义控件的属性(attr.xml,TypedArra
  5. 获取手机安装的全部应用的示例教程
  6. Andorid Dialog 示例【慢慢更新】
  7. android 创建桌面快捷方式 、插件

随机推荐

  1. 【Android翻译】关于Activity的onSaveIns
  2. Android Service总结04 之被绑定的服务 -
  3. Android虚拟键盘弹出时挡住EditText解决
  4. Android之Activity组件
  5. Android的开发配置篇(linux平台)
  6. Android(安卓)小众良心的应用市场推荐
  7. Android aapt 工具介绍
  8. Android的swift语言-Kotlin(一)
  9. Window下android 模拟器SD卡的使用方法
  10. Robot Framework + Appium测试Android设