在Android中,包中的所有.Java文件是否一次编译?

时间:2012-10-27 01:39:44

标签: android compilation

我在Android上是一个菜鸟,我下载了一些源代码,试图帮助我学习一点。当我打开代码时,我注意到源代码的Src文件夹中包含的许多.Java文件都没有onCreate()方法。我总是假设要运行.Java类,它必须有一个onCreate()方法。

所以......所有的.Java文件都是一次编译运行的吗?!

2 个答案:

答案 0 :(得分:0)

.java文件不必始终具有onCreate()方法。只有Activity,Service,BroadcastReceiver等Android组件在生命周期中包含这个onCreate()方法。

像.java这样的普通库只能有公共类和有用的方法声明,所以这些.java文件不需要声明onCreate()方法或main()。

您在项目中看到的.java文件是正常的.java文件,它可能只包含常量代码或库类/方法。

答案 1 :(得分:0)

有帮助,彻底:

http://developer.android.com/training/basics/activity-lifecycle/index.html

解释其他(Android)Java类如何工作:

没有onCreate()的类通常会有一个构造函数,如下所示:

public class MyNewClass {
    // We'll leave getters and setters for later.
    int x, y;

    public MyNewClass(int x, int y){
        this.x = x;
        this.y = awesomeMethod(y);
    }

    static public int awesomeMethod(int awesome){
        return awesome*awesome;
    }
}

所以,在你的活动中,你去了:

public class SadActivity extends Activity {
    MyNewClass myNewClass;

    @Override
    public void onCreate(Bundle b){
        super(b);
        myNewClass = new MyNewClass(2,2);
    }
}

在运行时,使用构造函数创建一个MyNewClass实例,有助于调用myNewClass。它有一个方法myNewClass.awesomeMethod(),你可以使用它来平方int。成员变量myNewClass.x(2)和myNewClass.y(4)。