当前位置:   article > 正文

【Android Debug】Android 加堆栈打印信息_libutilscallstack

libutilscallstack

1、Native C++层加堆栈打印

1.1、步骤

1.1.1、包含 #include "utils/CallStack.h"头文件

 #include "utils/CallStack.h"
  • 1

1.1.2、引用动态库

Andorid O以上
Android.mk: LOCAL_SHARED_LIBRARIES里包含libutilscallstack
Android.bp: shared_libs里包含libutilscallstack

Android O
Android.mk: LOCAL_SHARED_LIBRARIES里包含libutils
Android.bp: shared_libs里包含libutils

Android N 以前版本
Android.mk: LOCAL_SHARED_LIBRARIES里包含libutils

1.3、然后在要打印堆栈处加入android::CallStack cs(“haha”)

android::CallStack cs("haha")
  • 1

"haha"是在logcat输出的TAG,这里可以自己定义,如果上下文已经在android namespace里,“android::”前缀就不必加了。Native C++的输出log可以在logcat里看到。
在这里插入图片描述
堆栈从下往上调用

在这里插入图片描述

1.2、差异原因

在Andorid O和Andorid O以上两个平台所引用的库不一样,Android O上是将CallStack.cpp编译进 libutils.so,而Andorid O以上将CallStack.cpp独立编译进另外一个库,名字叫做 libutilscallstack.so

Android O上的Android.bp在这里插入图片描述

Andorid O以上的Android.bp
在这里插入图片描述

2、Java层加堆栈打印

Log.d("hippo", Log.getStackTraceString(new Throwable()));
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/221774
推荐阅读
相关标签
  

闽ICP备14008679号