gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-28 23:29:03 32 4
gpt4 key购买 nike

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

例如(来自 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);
}
}

运行但没有main!!!

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

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

谢谢!

最佳答案

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

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

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

Framework 具有名为 Process、VMRuntime 的类,它们负责启动应用程序。其中确实处理主要方法。

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

关于android - Android源码怎么没有main方法还能运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4221467/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com