当我们开发
Android应用程序时,我们总是从主活动的onCreate()方法开始.很明显,在调用onCreate()之前应该进行一些初始化.我的问题是:Android应用程序的入口点(或主要方法)是什么? Dalvik VM在一开始就调用了什么(即,当它完成自己的初始化,并且即将控制转移到应用程序时)?我在哪里可以找到这个主要的代码?
解决方法
金斯顿指出,第一个“入口”点是应用程序类.
但是,获得第一个起点的最简单方法是在调试onCreate时检查堆栈.
您可以检查仪器,这听起来有点像您想要的.
http://developer.android.com/reference/android/app/Instrumentation.html
MainActivity.onCreate(Bundle) line: 12 Instrumentation.callActivityOnCreate(Activity,Bundle) line: 1047 ActivityThread.performLaunchActivity(ActivityThread$ActivityRecord,Intent) line: 2627 ActivityThread.handleLaunchActivity(ActivityThread$ActivityRecord,Intent) line: 2679 ActivityThread.access$2300(ActivityThread,ActivityThread$ActivityRecord,Intent) line: 125 ActivityThread$H.handleMessage(Message) line: 2033 ActivityThread$H(Handler).dispatchMessage(Message) line: 99 Looper.loop() line: 123 ActivityThread.main(String[]) line: 4627 Method.invokeNative(Object,Object[],Class,Class[],int,boolean) line: not available [native method] Method.invoke(Object,Object...) line: 521 ZygoteInit$MethodAndArgsCaller.run() line: 868 ZygoteInit.main(String[]) line: 626 NativeStart.main(String[]) line: not available [native method]