您当前的位置:首页 > 计算机 > 编程开发 > 安卓(android)开发

如何查看一个函数的调用栈

时间:02-06来源:作者:点击数:

有时候,我们想知道一个函数是被谁调用的,这很简单,就输出一个异常即可,因为异常信息里有调用栈。这个技巧很有用,比如在做Android开发时,我想研究一个触摸事件,可以给一个View设置OnTouchListener,了解过触摸事件的朋友应该都知道触摸事件是由dispatchTouchEvent函数分法的,有时我们想看一下这个dispatchTouchEvent里面是如何把事件分发到我们设置的OnTouchListener中,如果直接看dispatchTouchEvent源码,分发现很晕,因为源码太多了,很难看懂,如果想最快的知道调用流程的话,可以在OnTouchListener中打印一个异常,这样就能知道dispatchTouchEvent函数是如何一步步调用到OnTouchListener的,示例如下:

val touchListener = View.OnTouchListener { v, event ->
    if (event.action == MotionEvent.ACTION_UP) {
        Log.i("ABCD", "哈哈哈", Excetpion("onTouchEvent调用"))
    }
    false
}

运行你的程序,然后就能看到控制台输出了一个异常,这个异常信息就包含了onTouchEvent的调用栈,有了调用栈再去看源码就会比较轻松一点了。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门