关于android应用程序的入口
startActivity(call);
Intent sms = newIntent(Intent.ACTION_SENDTO,Uri.parse('smsto:'+phonenumber);
startActivity(sms);
从这点上看,android应用程序实际上是由多个Activity按照一定的次序拼装起来的,只不过拼装的过程中,后台传递了一些数据,使得各个Activity之间能比较好的衔接起来.
扯了这么多,其实我的意思还是想说,android应用程序中,并没有像c++和java这样有main函数来作为应用程序的入口.android应用程序提供的是入口Activity,而非入口函数.
在eclipse中创建一个android应用程序的时候,默认会创建一个Activity.这个Activity实际上就是入口Activity了.从哪里定义它是Activity呢?AndroidManifest.xml文件中定义了整个android应用所包含的Activity.默认生成的Activity的定义为:
action节点中的android.intent.action.MAIN表明它所在的Activity是整个应用程序的入口点.而category中的android.intent.category.LAUNCHER意思是把这个Activityg归属到加载器类,即把这个Activity标注为自动会加载和启动的Activity,这样程序启动时候就先加载这个Activity了.参考手册上是这么说的----'theLAUNCHER category says that this entry point should be listed inthe applicationlauncher.'意思和我理解的有出入.不过意思都是说这个Activity要被应用程序加载.
我们可以对比下eclipse中console端输出的日志来看下.初始,我把
[2011-08-11 09:29:10 - lifecycle_test]------------------------------
[2011-08-11 09:29:10 - lifecycle_test] Android Launch!
[2011-08-11 09:29:10 - lifecycle_test] adb is runningnormally.
[2011-08-11 09:29:10 - lifecycle_test] No Launcher activityfound!
[2011-08-11 09:29:10 - lifecycle_test] The launch will only syncthe application package on the device!
[2011-08-11 09:29:10 - lifecycle_test] Performing sync
[2011-08-11 09:29:10 - lifecycle_test] Automatic Target Mode: usingexisting emulator 'emulator-5554' running compatible AVD'myavd_2.2'
[2011-08-11 09:29:15 - lifecycle_test] Application alreadydeployed. No need to reinstall.
[2011-08-11 09:29:15 - lifecycle_test]\lifecycle_test\bin\lifecycle_test.apk installed on device
[2011-08-11 09:29:15 - lifecycle_test] Done!
[2011-08-11 09:30:47 - lifecycle_test]------------------------------
[2011-08-11 09:30:47 - lifecycle_test] Android Launch!
[2011-08-11 09:30:47 - lifecycle_test] adb is runningnormally.
[2011-08-11 09:30:47 - lifecycle_test] Performingtest.activity.leipei.activity01 activity launch
[2011-08-11 09:30:47 - lifecycle_test] Automatic Target Mode: usingexisting emulator 'emulator-5554' running compatible AVD'myavd_2.2'
[2011-08-11 09:30:47 - lifecycle_test] Uploading lifecycle_test.apkonto device 'emulator-5554'
[2011-08-11 09:30:47 - lifecycle_test] Installinglifecycle_test.apk...
[2011-08-11 09:30:54 - lifecycle_test] Success!
[2011-08-11 09:30:55 - lifecycle_test] Starting activitytest.activity.leipei.activity01 on device emulator-5554
[2011-08-11 09:30:57 - lifecycle_test] ActivityManager: Starting:Intent { act=android.intent.action.MAINcat=[android.intent.category.LAUNCHER]cmp=test.activity.leipei/.activity01 }