为什么android应用程序不需要main方法

时间:2014-06-20 17:24:31

标签: java android

这是一个出于好奇而不是实际问题的问题。一个独立的java程序,它的可执行程序需要一个 public static void main(String [] args)方法。但在android中没有这样的方法。最接近main方法的是在清单中定义为类别android:name =" android.intent.category.LAUNCHER 的活动。所以我的问题是android需要一个主方法吗?如果是,它是如何生成的,是通过解析xml文件并在gen文件夹中创建像R.java这样的引用类似于res文件夹?如果不是,我的java文件的执行如何开始。

2 个答案:

答案 0 :(得分:3)

有一个主要的,但你没有写它。主要是Android框架的一部分。它将获取参数并将它们映射到要运行的Activity或Service,然后调用正确的生命周期函数。所以你不必担心它。想想一个活动的onCreate(或一个服务的onStart)取代main。

答案 1 :(得分:0)

用于运行独立Java程序的Java虚拟机需要main()才能开始执行。 Android使用当前使用Dalvik虚拟机,它搜索Activity子类的实例。在Android 5中,他们将切换到ART(Android Runtime)。正如您所提到的,manifest指定了LAUNCHER,其值为此子类,并且执行从onCreate()开始。