Android Debug 那点事

小工具
  • SelectorGeneratorPlus
  • Octotree
  • GitHub Plus
  • OhMyStar2
  • 更多

调试工具

  • Stetho
  • 调试webview
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            webview.setWebContentsDebuggingEnabled(true);
        }

Android Studio Debug

  • 面板介绍
  • 设置变量的值
举个例子
todayIntimacy
  • 条件断点
    场景: for循环中的断点
举个例子
  • 日志断点
    场景:RecyclerView.Adapter中观察变量
举个例子
h.bindView(item, getIndexFourMargin(position));
int[] res = getIndexFourMargin(position)
"position = " + position + ", res[0] = " + res[0] + ", res[1] = " + res[1]
  • 异常断点
举个例子
  • 方法断点
举个例子
  • 属性断点(Field WatchPoint)
    场景:在多线程环境下,你发现某个值莫名其妙滴不知道什么时候被谁给修改了
举个例子
private boolean mbPrepareingVideo = false;
断点输出
StackTraceElement[] s = Thread.currentThread().getStackTrace()
String methodName = s[6].toString()
"name = " + methodName

Tips

  • 混淆过的代码不支持debug, 注意minifyEnabled的值
  • 如果debug的代码在不同进程中,记得attch的时候选中所在进程


    image.png

你可能感兴趣的:(Android Debug 那点事)