最近遇到一个bug,发现radio log中大部分信息是没有的,问题根本无法排查。

从telephony framework最常用的Rlog开始分析

frameworks/base/telephony/java/android/telephony/Rlog.java

    public static int d(String tag, String msg) {        return Log.println_native(Log.LOG_ID_RADIO, Log.DEBUG, tag, msg);    }
跳转到C++代码

frameworks/base/core/jni/android_util_Log.cpp

static JNINativeMethod gMethods[] = {    /* name, signature, funcPtr */    { "isLoggable",      "(Ljava/lang/String;I)Z", (void*) android_util_Log_isLoggable },    { "println_native",  "(IILjava/lang/String;Ljava/lang/String;)I", (void*) android_util_Log_println_native },};
对应方法是android_util_Log_println_native

static jint android_util_Log_println_native(JNIEnv* env, jobject clazz,        jint bufID, jint priority, jstring tagObj, jstring msgObj){    ...#ifdef HAVE_XLOG_FEATURE    if (flag_m == 1) {        if (xlogf_java_xtag_is_on(new_tag, (android_LogPriority)priority)) {            res = __android_log_buf_write(bufID, (android_LogPriority)priority, new_tag, msg);        }    } else if (xlogf_java_tag_is_on(tag, (android_LogPriority)priority)) {      res = __android_log_buf_write(bufID, (android_LogPriority)priority, tag, msg);    }#else    if (flag_m == 1) {       res = __android_log_buf_write(bufID, (android_LogPriority)priority, new_tag, msg);    } else {       res = __android_log_buf_write(bufID, (android_LogPriority)priority, tag, msg);    }#endif    ...}
结合日志、代码和测试ROM版本(user版)可以推测出xlogf_java_xtag_is_on是依据优先级判断日志是否输出的,error级别的信息是能够输出的,Debug级别的就无法输出了。参见 android toolbox 中log 工具源码分析,xlogf_java_xtag_is_on是mtk提供的,没有开放源码。所以测问题还是要debug版本的rom啊,或者rilc中直接使用原生的输出方法打印日志,不使用mtk封装的日志方法。


--------------------------------------------------------------------

更新,代码找到了

lib库的在vendor/mediatek/proprietary/external/libxlog

kernal的位置在/drivers/misc/mediatek/xlog

更多相关文章

  1. [置顶] android中加载图片
  2. Android倒计时实现
  3. android dialog 背景透明的样式
  4. Android之动态改变控件大小
  5. Android中调试规范Log
  6. android读取raw下面的文件
  7. Android(安卓)studio编译警告:请使用 -Xlint:deprecation 重新编
  8. android音乐播放器(4)
  9. Linux 统计代码行数

随机推荐

  1. android基础之Application
  2. Android(安卓)Studio 开发常用快捷键
  3. Android的状态栏
  4. android 设置中文字体。。。。
  5. Android(安卓)禁止带有home属性的APP安装
  6. Android数字证书
  7. Android四大组件之Activity
  8. android 各版本发布时间
  9. Android日志工具
  10. Android(安卓)一些注意