Android高效调试技巧01——Log.getStackTraceString()

    在排查问题时我们常常迷失在错综复杂的方法调用中,特别是做系统开发,模块关系尤其复杂。今天介绍 android.util.Log 的一个方法 getStackTraceString,可以帮助我们理清调用关系。

    用法如下:Log.i(TAG,Log.getStackTraceString(new Throwable()));。我们写一个简单的例子来看看它的使用,例子很简单,定义一个按钮,点击按钮后调用 test 方法:

private void test() {

    Log.i(TAG,Log.getStackTraceString(new Throwable()));

}

    打印出的结果如下:

HelloActivity: java.lang.Throwable

HelloActivity:     at com.example.android.helloactivity.HelloActivity.test(HelloActivity.java:86)

HelloActivity:     at com.example.android.helloactivity.HelloActivity.onClick(HelloActivity.java:80)

HelloActivity:     at android.view.View.performClick(View.java:5675)

HelloActivity:     at android.view.View$PerformClick.run(View.java:22641)

HelloActivity:     at android.os.Handler.handleCallback(Handler.java:836)

HelloActivity:     at android.os.Handler.dispatchMessage(Handler.java:103)

HelloActivity:     at android.os.Looper.loop(Looper.java:203)

HelloActivity:     at android.app.ActivityThread.main(ActivityThread.java:6347)

HelloActivity:     at java.lang.reflect.Method.invoke(Native Method)

HelloActivity:     at  com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)

HelloActivity:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)

    可以看到它把 test 方法的整个调用过程打印了出来,是不是很有用?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,037评论 25 709
  • 怎么如此平静, 感觉像是走错了片场.为什么呢, 因为上下游工作在同一个线程呀骚年们! 这个时候上游每次调用emit...
    Young1657阅读 5,493评论 2 1
  • ==================================================== 一:什么...
    爱情小傻蛋阅读 13,322评论 3 31
  • 什么是代码混淆 代码混淆就是将代码中的各种元素,如变量,方法,类和包的名字改写成无意义的名字,增加项目反编译后被读...
    蜗牛家族史阅读 10,602评论 1 4
  • 好久没有成功的做成一件事了。我指的做完一件事是从无到有,completely done。事情不在于简单和困难,也不...
    DuankunWang阅读 1,414评论 0 1

友情链接更多精彩内容