java android中打印方法棧的幾種辦法

有時候在debug的時候,因爲開發環境不是as,不能去單步調試,但是又想知道一個函數的調用關係,則可以在對應的函數方法中加入如下的打印:

        Log.d("MthodCall",Log.getStackTraceString(new Throwable()));  //方法1
        Exception e = new Exception("this is a log");  // 方法2
        e.printStackTrace();
public class MthodCall extends Activity {
    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mthod_call);
        textView= findViewById(R.id.textView1);
        textView.setOnClickListener(listener);
    }

    View.OnClickListener listener =new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            testMethodCall();
        }
    };

    public void testMethodCall(){
        Log.d("MthodCall","sdf");
        MethodA();
    }


    public void MethodA(){
        MethodB();
    }


    public  void MethodB(){
        Log.d("MthodCall",Log.getStackTraceString(new Throwable()));  //方法1


        Exception e = new Exception("this is a log");  // 方法2
        e.printStackTrace();
    }

當點擊textview 後,log中會打印如下的調用關係。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章