关于AndroidManifest.xml笔记
参考:http://code.google.com/p/androidbmi/wiki/AndroidManifest(强烈建议阅读)
AndroidManifest如果直译的话即为Android清单,这个清单包含了一个项目所使用的Activity/Service/Receiver等。
Android系统的特点:应用程式不与底层系统紧密结合,而是运行在框架中。即开发者在开发时只要关心Android框架提供了哪些功能(如:屏幕大小,有无GPS等),而无需关心具体的是什么品牌手机或系统,使用什么架构。
对于Android来说,当一个Activity要执行操作时,并不是直接呼叫另一个Activity,而是通过Intent来完成。Intent中文即“意图”,它包含了一定的信息(如你想完成屏幕跳转,或者获得数据等)。这个意图(Intent)进入Android框架,然后查看该Intent是否在注册表中,若符合则启动对应的服务或者Activity。
这个过程涉及到AndroidManifest.xml文件中的一个重要地方,intent-filters。它们描述了Activity的启动时间与位置。每当Activity要执行一个操作时,传入框架中的Intent被拿来与每个application所暴露的intent-filter比较,来找到最合适的Activity来处理操作。
一个HelloAndroid的例子
几点注意的部分(具体每个标签的含义可参考上文的参考链接,讲解比较详细,我只记录一点个人认为有用的)
1.「android:versionName」是给使用者看的版本号,如「1.0」、「2.0」。 「android:versionCode」则是开发者用的内部版本号,一般使用流水号。
2.「application」标签里面,定义了所有这个应用程式用到的Activity、服务等资讯。
3.「activity」标签:Activity是Android应用程式与使用者互动的主要元素。 若是一个应用程式中包含多个画面时,会定义多个不同的Activity,我们也必须在「application」标签中,使用多个「activity」标签,为不同的Activity添加描述。
4.因为之前已经定义package="com.jesse.Android.HelloAndroid",所以android:name=".HelloAndroid“中”.HelloAndroid“为简写
5.「action」标签中的「android:name」属性,其内容「android.intent.action.MAIN」表示:这个Activity 是此应用程式的进入点(就像程式中常见的main 主程式),开启这个应用程式时,应先执行这个Activity。
6.「category」标签中的「android:name」属性,其内容「android.intent.category.LAUNCHER」表示:这个Activity 将显示在Launcher 的应用程式列表中。