在Android代码中可以通过了解函数的CallStack加速调试和分析过程,本文说明如何在Android运行时加入CallStack及Android P上的注意点。
Java
1 2 | import android.util.Log; Log.d("yourTag", Log.getStackTraceString(new Exception())); |
C++
1 2 3 4 | #include <utils/CallStack.h> android::CallStack stack; stack.update(); stack.dump("yourTag"); |
Android 9以前CallStack call是被build进libutils, framework大部分service都是link了该lib,因此可以直接使用Callstack。
Android 9开始后CallStack被build进libutilscallstack,因此直接使用Callstack会报undefined reference to ‘android::CallStack::CallStack 在Android.bp或Android.mk中加入”libutilscallstack” 即可.