Android源代码如何不能使用主要方法并仍然运行?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

我现在已经在几个教程中看到了这一点......但是在Android世界中,Android源代码如何不具备主要方法并仍然运行。

例如,我的代码如下:

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是一个入口点?

提问于
用户回答回答于

你可能认为是Java“应用程序”的东西没有自己的main()方法。例如,IIRC,servlet,WAR等没有main()方法 - main()容器中存在方法:

但是onCreate是一个入口点?

onCreate() 是一种方法。

如果有多个活动......那么这些内置事件处理程序是否有层次结构?

用户回答回答于

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

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

如果没有主要方法,虚拟机如何识别如何启动应用程序?

框架具有称为Process,VMRuntime的类,它们负责启动应用程序。这确实与主要方法有关。

为了更好地理解,学习Android的Zygote服务。处理Applicationmanager服务,ActivityStack Activity Threadds等。

扫码关注云+社区