Android源码没有main方法怎么还能运行呢?

2024-03-15

我现在已经在一些教程中看到了这一点...但是 Android 源代码到底如何能够没有 main 方法并且仍然可以运行。

例如(来自http://developer.android.com/guide/tutorials/hello-world.html http://developer.android.com/guide/tutorials/hello-world.html):

public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

可以运行,但没有主程序!

我还认为使用像 onCreate (或 formLoad 等)这样的东西是不好的,因为构造函数应该完成这项工作,而这样的内置方法有时可能会很臭。但onCreate是一个入口点?即使没有主线?

如果有多个活动怎么办……这些内置事件处理程序是否存在层次结构? OnCreate 胜过一切?否则,应用程序如何知道要运行什么或在哪里进入程序?

Thanks!


每个应用程序都将拥有自己的虚拟机。要在其空间(VM)内运行应用程序,必须有一个 main 方法。

活动不是应用程序启动时调用的实际类。有一个名为 Application 的类,它将是要启动的应用程序的根类。

如果没有main方法,VM如何识别如何启动应用程序?

框架有称为 Process、VMRuntime 的类,它们负责启动应用程序。其中确实处理 main 方法。

为了更好的理解,研究一下Android的Zygote服务。处理Applicationmanager Service、ActivityStack Activity Threadds等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android源码没有main方法怎么还能运行呢? 的相关文章

随机推荐