Android官方文档—APP清单(<manifest>)

<manifest>

语法:

<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-permission-sdk-23>
<uses-sdk>

说明:

AndroidManifest.xml文件的根元素。它必须包含<application>元素并指定xmlns:android和package属性。

属性:

xmlns:android

定义Android命名空间。此属性应始终设置为“http://schemas.android.com/apk/res/android”。

package

Android应用程序的完整Java语言样式包名称。名称应该是唯一的。名称可以包含大写或小写字母(“A”到“Z”),数字和下划线(“_”)。但是,单个包名称部分可能只以字母开头。

为避免与其他开发人员发生冲突,您应使用Internet域所有权作为程序包名称的基础(反之)。例如,Google发布的应用程序以com.google开头。在发布应用程序时,也不应使用com.example命名空间。

包名称用作应用程序的唯一标识符。它也是应用程序进程的默认名称(请参阅<application>元素的进程进程属性)和活动的默认任务关联(请参阅<activity>元素的taskAffinity属性)。

警告:发布应用程序后,无法更改程序包名称。程序包名称定义了应用程序的标识,因此如果更改它,则会将其视为不同的应用程序,而以前版本的用户无法更新到新版本。

android:sharedUserId

将与其他应用程序共享的Linux用户标识的名称。默认情况下,Android会为每个应用程序分配自己唯一的用户ID。但是,如果将此属性设置为两个或多个应用程序的相同值,则它们将共享相同的ID - 前提是它们也由相同的证书签名。具有相同用户ID的应用程序可以访问彼此的数据,并且如果需要,可以在同一进程中运行。

android:sharedUserLabel

共享用户标识的用户可读标签。必须将标签设置为对字符串资源的引用;它不能是原始字符串。

此属性是在API级别3中引入的。仅当还设置了sharedUserId属性时,它才有意义。

android:versionCode

内部版本号。此数字仅用于确定一个版本是否比另一个版本更新,更高的数字表示更新的版本。这不是向用户显示的版本号;该数字由versionName属性设置。

该值必须设置为整数,例如“100”。您可以根据需要定义它,只要每个连续版本具有更高的数字即可。例如,它可以是内部版本号。或者,您可以通过在低16位和高16位分别编码“x”和“y”将“x.y”格式的版本号转换为整数。或者,每次发布新版本时,您只需将数字增加一即可。

android:versionName

显示给用户的版本号。此属性可以设置为原始字符串或字符串资源的引用。该字符串没有其他目的,只能显示给用户。 versionCode属性保存内部使用的重要版本号。

android:installLocation

应用程序的默认安装位置。

接受以下关键字字符串:

ValueDescription
"internalOnly"应用程序必须仅安装在内部设备存储上。如果设置了此选项,则永远不会在外部存储上安装应用程序。如果内部存储空间已满,则系统将不会安装该应用程序。如果您没有定义android:installLocation,这也是默认行为。
"auto"应用程序可以安装在外部存储器上,但系统默认情况下会将应用程序安装在内部存储器上。如果内部存储已满,则系统会将其安装在外部存储上。安装后,用户可以通过系统设置将应用程序移动到内部或外部存储。
"preferExternal"该应用程序更喜欢安装在外部存储(SD卡)上。无法保证系统会遵守此请求。如果外部媒体不可用或已满,则可能会将应用程序安装在内部存储上。安装后,用户可以通过系统设置将应用程序移动到内部或外部存储。

注意:默认情况下,您的应用程序将安装在内部存储上,并且无法安装在外部存储上,除非您将此属性定义为“auto”或“preferExternal”。

在外部存储上安装应用程序时:

  • .apk文件保存到外部存储器,但任何应用程序数据(如数据库)仍保存在内部设备内存中。
  • 保存.apk文件的容器使用密钥加密,该密钥允许应用程序仅在安装它的设备上运行。 (用户无法将SD卡传输到其他设备并使用卡上安装的应用程序。)但是,多个SD卡可以与同一设备一起使用。
  • 根据用户的请求,可以将应用程序移动到内部存储。

用户还可以请求将应用程序从内部存储器移动到外部存储器。但是,如果此属性设置为internalOnly(默认设置),则系统将不允许用户将应用程序移动到外部存储。

阅读应用安装位置以获取有关使用此属性的更多信息(包括如何保持向后兼容性)。

引入于:API Level 8。

参考:

<application>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值