参考资料:
http://developer.android.com/guide/topics/manifest/manifest-intro.html
http://developer.android.com/guide/topics/manifest/manifest-element.html
每个Android应用程序工程根目录必须有一个AndroidManifest.xml文件。这个文件包含着应用程序在Android系统中的配置信息。在程序被安装时这些信息会被系统读取,并被合理的安装。
这些信息包括:
应用程序基本信息,包括包名,版本号等
应用程序内使用的组件声明,配置信息
应用程序需要的sdk版本,功能,权限,库
应用程序发布的权限
示例:
<?xml version="1.0" encoding="utf-8"?> <manifest> <uses-permission/> <permission/> <permission-tree/> <permission-group/> <instrumentation/> <uses-sdk/> <uses-configuration/> <uses-feature/> <supports-screens/> <compatible-screens/> <supports-gl-texture/> <application> <activity> <intent-filter> <action/> <category/> <data/> </intent-filter> <meta-data/> </activity> <activity-alias> <intent-filter>. . .</intent-filter> <meta-data/> </activity-alias> <service> <intent-filter>. . .</intent-filter> <meta-data/> </service> <receiver> <intent-filter>. . .</intent-filter> <meta-data/> </receiver> <provider> <grant-uri-permission/> <meta-data/> <path-permission/> </provider> <uses-library/> </application> </manifest>
manifest标签是AndroidManifest.xml文件的根节点。语法:
<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>
属性:
xmlns:android
命名空间,固定为http://schemas.android.com/apk/res/android
package
应用程序包名。应用程序在系统中唯一标示符,一般是com.google.example这样的形式,包名和自动产生的资源包名有关系,但是和自己创建的Activity等包名没啥关系
android:sharedUserId
用于和别的应用程序共享的Linux用户ID,这样A就能访问B的文件,B也能访问A的文件。他们也能跑在一个进程中。注意:多个应用程序需要使用同样的签名。
android:sharedUserLabel
代表sharedUserId的文字标识。只有android:sharedUserId有效时才有效,必须是字符串资源。
android:versionCode
应用程序版本号
android:versionName
应用程序版本名,给用户看的
android:installLocation
应用程序默认安装位置
可能值:
auto:默认会装在内部存储,如果内部存储满了会装外部存储。
internalOnly:只能装在内部存储中,如果内部存储满了不能安装(默认值)
preferExternal:优先安装到外部存储,如果外部存储不可用,则安装到内部存储
注意:外部存储不稳定,插上电脑之类的都会导致不可用。