针对Apk log内部控制方式是通过Log.isLoggable来控制的情况

Example: adb shell setprop log.tag.Finsky VERBOSE

一般code是这样写的:
import android.util.Log;

public class FinskyLog
{
public static final boolean DEBUG = Log.isLoggable(TAG, 2);
private static String TAG = “Finsky”;

Log.isLoggable的实现:
Native层处理文件:android_util_Log.cpp (\frameworks\base\core\jni)

Java 定义在Log.java \frameworks\base\core\java\android\util
public static native boolean isLoggable(String tag, int level);
非常有助于无source code apk的debug,比如google apk

struct levels_t {

jint verbose;jint debug;jint info;jint warn;jint error;jint assert;

};
static levels_t levels;

static int toLevel(const char* value)
{

switch (value[0]) {    case 'V': return levels.verbose;    case 'D': return levels.debug;    case 'I': return levels.info;    case 'W': return levels.warn;    case 'E': return levels.error;    case 'A': return levels.assert;    case 'S': return -1; // SUPPRESS}return levels.info;

}

static jboolean isLoggable(const char* tag, jint level) {

String8 key;key.append(LOG_NAMESPACE);key.append(tag);char buf[PROPERTY_VALUE_MAX];if (property_get(key.string(), buf, "") <= 0) {    buf[0] = '\0';}int logLevel = toLevel(buf);return logLevel >= 0 && level >= logLevel;

}

更多相关文章

  1. Android 自定义ListView实现Item左右滑动删除
  2. 自定义android Intent Action与继承TextView形成一个动态改变tex
  3. Android 自定义通知Notification 适配不同背景颜色
  4. android 最简单的自定义控件 自定义view
  5. Android 自定义控件的简单实现
  6. Android之Toast自定义管理
  7. Android 自定义阴影
  8. 如何检查 Android 应用的内存使用情况

随机推荐

  1. Using Eclipse for Android(安卓)C/C++ D
  2. android双击返回键退出程序
  3. Android判断Wlan信号强弱及wlan管理信息
  4. android 常用资料
  5. ubuntu 10.10下面编译android 4.0 出错
  6. 如何使用APK扩展文件
  7. Android定制--------自定义关机时间
  8. Android(安卓)读取doc文件
  9. FregServer进程,启动Binder线程池,睡眠等待
  10. Android(安卓)8.0 Caused by: java.lang.