分析源码的方式

分析源码的方式

1.主动调用,跟随源码一步步分析,如分析ActivitystartActivity的过程
2.被动调用,如分析ActivityonCreate方式是如何调用的?

日志打印技巧
Log有如下形式的方法,带有一个Throwable参数:

public static int d (String tag, 
                String msg, 
                Throwable tr)

所以可使用如下的形式打log,可显示调用的堆栈

android.util.Log.i("wztest", "Activity onCreate", new Exception());

如上,比如在Activity的onCreate方法中添加log,可显示调用onCreate的堆栈过程

05-23 21:48:43.084  1831  1831 I wztest  : Activity onCreate
05-23 21:48:43.084  1831  1831 I wztest  : java.lang.Exception
05-23 21:48:43.084  1831  1831 I wztest  : 	at android.app.Activity.onCreate(Activity.java:990)
05-23 21:48:43.084  1831  1831 I wztest  : 	at com.android.settings.FallbackHome.onCreate(FallbackHome.java:65)
05-23 21:48:43.084  1831  1831 I wztest  : 	at android.app.Activity.performCreate(Activity.java:7000)
05-23 21:48:43.084  1831  1831 I wztest  : 	at android.app.Activity.performCreate(Activity.java:6991)
05-23 21:48:43.084  1831  1831 I wztest  : 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
05-23 21:48:43.084  1831  1831 I wztest  : 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
05-23 21:48:43.084  1831  1831 I wztest  : 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
05-23 21:48:43.084  1831  1831 I wztest  : 	at android.app.ActivityThread.-wrap11(Unknown Source:0)
05-23 21:48:43.084  1831  1831 I wztest  : 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
05-23 21:48:43.084  1831  1831 I wztest  : 	at android.os.Handler.dispatchMessage(Handler.java:106)
05-23 21:48:43.084  1831  1831 I wztest  : 	at android.os.Looper.loop(Looper.java:164)
05-23 21:48:43.084  1831  1831 I wztest  : 	at android.app.ActivityThread.main(ActivityThread.java:6494)
05-23 21:48:43.084  1831  1831 I wztest  : 	at java.lang.reflect.Method.invoke(Native Method)
05-23 21:48:43.084  1831  1831 I wztest  : 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
05-23 21:48:43.084  1831  1831 I wztest  : 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

onCreate

猜你喜欢

转载自blog.csdn.net/u014084081/article/details/130846750