首先,我们可以了解,Android程序可以由一个或者多个Activity组成,每个Activity之间并没有很紧密的联系。
我们可以在自己的程序中调用其他的Activity,特别是自己的代码之外生成的其他Activity。
比如,Android提供的发短信、打电话的Activity:
//打电话
startActivity(new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phonenumber));
//发短信
startActivity(new Intent(Intent.ACTION_SENDTO,Uri.parse("smsto:"+phonenumber));
从这一点上看,其实Android程序是由多个Activity按照一定得到次序拼装起来的,并通过一些后台的数据传递,让Activity之间比较好的衔接起来了。
说了这么多呢,其实想想表示的是,Android没有像java、c那样具有main函数来作为程序的入口,Android程序提供的是入口Activity,而不是入口函数。
|
当我们新建一个Android Project的时候,系统会默认新建一个MainActivity,它实际就是入口Activity了,从哪里可以看出来呢?
AndroidManifest.xml 文件中定义了程序中所有Activity:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dys.test">
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
从上面的代码中可以看出,action节点中的 android.intent.action.MAIN 表明它所在的Activity是整个程序的入口,而category中的 android.intent.category.LAUNCHER 意思是把这个Activityg归属到加载器类,即把这个Activity标注为自动会加载和启动的Activity,这样程序启动时候就先加载这个Activity了。