Activity中调用
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
StackTraceElementTest.test();
}
StackTraceElementTest类中打印
public class StackTraceElementTest {
public static void test() {
test1();
}
public static void test1() {
test2();
}
public static void test2() {
StackTraceElement[] s = Thread.currentThread().getStackTrace();
for (StackTraceElement state : s) {
String callerClazzName = state.getClassName();
callerClazzName = callerClazzName.substring(callerClazzName.lastIndexOf(".") + 1);
Log.d("StackTraceElementTest", "--" + callerClazzName + "." + state.getMethodName() + " : " + state);
}
}
}
打印结果
0 D/StackTraceElementTest(31946): --VMStack.getThreadStackTrace : dalvik.system.VMStack.getThreadStackTrace(Native Method)
1 D/StackTraceElementTest(31946): --Thread.getStackTrace : java.lang.Thread.getStackTrace(Thread.java:579)2 D/StackTraceElementTest(31946): --StackTraceElementTest.test2 : com.example.android.demo.StackTraceElementTest.test2(StackTraceElementTest.java:16)
3 D/StackTraceElementTest(31946): --StackTraceElementTest.test1 : com.example.android.demo.StackTraceElementTest.test1(StackTraceElementTest.java:12)
4 D/StackTraceElementTest(31946): --StackTraceElementTest.test : com.example.android.demo.StackTraceElementTest.test(StackTraceElementTest.java:8)
5 D/StackTraceElementTest(31946): --MainActivity.onCreate : com.example.android.demo.MainActivity.onCreate(MainActivity.java:26)