AndroidManifest配置文件解析之二——

语法

<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 

SEE ALSO:

  <application>

AndroidManifest配置文件解析之二——<manifest>,布布扣,bubuko.com

AndroidManifest配置文件解析之二——<manifest>

上一篇:Android 发布Apk签名


下一篇:Android 解析 Android 项目组成