Native C++层加堆栈打印:

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

2. 引用动态库

Andorid P

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

3. 然后在要打印堆栈处加入android::CallStack cs("haha");“haha”是在logcat输出的TAG,这里可以自己定义,

如果上下文已经在android namespace里,”android::”前缀就不必加了。Native C++的输出log可以在logcat里看到。

原因:

在Andorid O和Android P两个平台所引用的库不一样

  • Android O上是将CallStack.cpp编译进 libutils.so
  • 而Andorid P上将CallStack.cpp独立编译进另外一个库,名字叫做 libutilscallstack.so

Android O上的Android.bp

Android P/ Android O在native 层加堆栈打印信息

 

Android P上的Android.bp

Android P/ Android O在native 层加堆栈打印信息

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-10
  • 2022-12-23
  • 2022-12-23
  • 2021-11-20
  • 2021-11-20
猜你喜欢
  • 2021-05-29
  • 2021-08-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-25
  • 2022-01-01
相关资源
相似解决方案