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
————————————————
 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐