语法
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="string" android:sharedUserId="string" android:sharedUserLabel="string resource" android:versionCode="integer" android:versionName="string" android:installLocation=["auto" | "internalOnly" | "preferExternal"] > . . . </manifest>
被包含的标签
none
必须包含的标签
<application>
能够包含的标签
<compatible-screens> //兼容的屏幕 <instrumentation> //测试设备 <permission> <permission-group> <permission-tree> <supports-gl-texture> <supports-screens> <uses-configuration> <uses-feature> <uses-permission> <uses-sdk>
描述
AndroidManifest.xml文件的根element。它必须包含<application> element ,必须指明 xmls:android 和 package attribute。
属性说明
xmls:android
默认的Android的命名空间。此属性值应设置为:
"http://schemas.android.com/apk/res/android"。
package
标示application的一个java语言格式的包名。这个报名必须是唯一的。可以包含大小写字母,数字和下划线。第一个元素应该是字母。
包名应该用公司网址的倒写开始,例如Google开发的程序包名应该以 com.google 开始。永远不要以com.example作为发布工程的包名。
application的包名应该是唯一的,它也是工程进程的名称(请看<application> element 的 process attribute),还定义了一个activity的task affinity(任务共用性)(请看<activity> element 的 taskAffinity attribute)。
注意:一旦你发布了Application,则Application的包名就不能改了。如果你改变了包名,则会被认为是一个新的Application,并且用户也不能根据旧的版本来更新为新的版本。
android:shareUseeId
将被分享到其他Application的Linux用户ID的名称。默认的,每个Android Application都有它唯一的用户ID。但是,这个attribute的同一值同时被设置在两个或者多个Application时,他们将共享这个ID,并且他们也应该使用相同的签名。使用同一用户ID的Applications,将能够互相访问彼此的数据,也运行在同一个process中。(查看更详细内容)
android:versionCode
版本号。Application通过这个属性值来判断Application是否有新的版本。新的版本号比旧的版本号更高。这不是给用户展示的App的版本号,展示给用户的实在versionName中设置。
这个属性的值必须是整数。你可以随意定义,但是要保证新的版本号比旧的大。
android:versionName
展示给用户的Application的版本号。这个属性值可以是一个String资源。除了展示给用户,别无它用。
android:installLocation
application默认的安装位置。必须为以下值之一。
"internalOnly"——默认值。定义了Application必须安装到内存中。如果内存不够,则安装失败。
"auto"——Application默认安装在内存中,如果内存不够,就安装到外部存储介质上(例如:SD Card)。当程序安装后,用户也可以通过设置来将app随意移动到内存或者外部存储介质上。
"preferExternal"——Application被安装到外部存储介质(SDCard)上。但是不能保证安装成功。如果外部存储介质不可用或者已满,则Application会被安装到内存。当程序安装后,用户也可以通过设置来将app随意移动到内存或者外部存储介质上。
也就是,如果你不设置此attribute属性值为“auto”或者“preferExternal”,Application就只能安装在内存中。
当Application被安装在外部存储介质中:
1.apk文件被保存到外部存储介质中,但是application数据(如数据库等)会保存到内存中。
2.保存.apk文件的容器将会使用一个随机生成的密钥进行加密,这样只有安装该程序的设置可以使用存在外部存储介质上的数据。
3.在用户允许的情况下,application可以被移动到内存中。
在此属性值没有设置为internalOnly(默认值)时,Application可以从内存中移动到外部存储介质中,但是设置为internalOnly或者不设置任何值是,Application就不允许从内存移动到外部存储介质中。
阅读App Install Location 了解此属性的更多信息。
引入
API Level 1