AndroidManifest配置文件解析之二——<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-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>

时间: 2025-01-31 07:37:46

AndroidManifest配置文件解析之二——<manifest>的相关文章

SSH学习之二 OpenSSH配置文件解析

下面是对SSH配置文件的一些选项的分解说明,ssh_config是OpenSSH客户端的配置文件,sshd_config是OpenSSH服务器端的配置文件. ssh_config的内容如下: # This is the ssh client system-wide configuration file.  See ssh_config(5) for more information.  This file provides defaults for users, and the values c

Spring Boot干货系列:(二)配置文件解析

Spring Boot:配置文件解析   前言 上一篇介绍了Spring Boot的入门,知道了Spring Boot使用"习惯优于配置"(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来.所以,我们要想把Spring Boot玩的溜,就要懂得如何开启各个功能模块的默认配置,这就需要了解Spring Boot的配置文件application.properties. 正文 Spring Boot使用了一个全局的配置文件applicat

Hadoop配置文件解析

Hadoop源码解析 2 --- Hadoop配置文件解析 1 Hadoop Configuration简介    Hadoop没有使用java.util.Properties管理配置文件, 也没有使用Apache Jakarta Commons Configuration管理配置文件,而是使用了一套独有的配置文件管理系统,并提供自己的API,即使用 org.apache.hadoop.conf.Configuration处理配置信息. org.apache.hadoop.conf目录结构如下:

MyBatis 源码分析 - 配置文件解析过程

* 本文速览 由于本篇文章篇幅比较大,所以这里拿出一节对本文进行快速概括.本篇文章对 MyBatis 配置文件中常用配置的解析过程进行了较为详细的介绍和分析,包括但不限于settings,typeAliases和typeHandlers等,本文的篇幅也主要在对这三个配置解析过程的分析上.下面,我们来一起看一下本篇文章的目录结构. 从目录上可以看出,2.3节.2.5节和2.8节的内容比较多.其中2.3节是关于settings配置解析过程的分析,除了对常规的 XML 解析过程分析,本节额外的分析了元

python接口自动化测试 - configparser配置文件解析器详细使用

configparser简介 ConfigParser模块已在Python 3中重命名为configparser 该模块定义了ConfigParser类. ConfigParser类实现一种基本的配置文件解析器语言,该语言提供的结构类似于 .ini 文件中的结构 ini文件相关知识 键值对可用 = 或者 : 进行分隔 section 的名字是区分大小写的,而 option 的名字是不区分大小写的 键值对中头部和尾部的空白符会被去掉 值可以为多行 配置文件可以包含注释,注释以 # 或者 ; 为前缀

linuxPAM认证配置文件解析

1.PAM文件 /etc/pam.conf或者/etc/pam.d/ PAM配置文件/lib(64)/security/pam_*.so 可动态加载的PAM service module 2.配置文件格式 /etc/pam.conf:主配置文件 service    type    control    module-path    module-arguments /etc/pam.d/service:服务配置文件 type    control    module-path    modul

MySQL 5.6.24 线上版本配置文件解析

线上MySQL服务器配置文件解析 innodb_buffer_pool_size 非常重要的一个参数,用于配置InnoDB的缓冲池,如果数据库中只有哦Innodb表,则推荐配置量为总内存的75% select  engine,round(sum(data_length + index_length)/1024/1024,1) as 'Total MB' from information_schema.tables  where table_schema not in ('information_

PHP 类与对象 全解析( 二)

目录 PHP 类与对象 全解析( 一) PHP 类与对象 全解析( 二) PHP 类与对象 全解析(三 ) 7.Static关键字 声明类成员或方法为static,就可以不实例化类而直接访问.不能通过一个对象来访问其中的静态成员(静态方法除外). 静态成员属于类,不属于任何对象实例,但类的对象实例都能共享. 小结: 在类内部访问静态成员属性或者方法,使用 self::(没有 $ 符号),如:  self:: $country  //类内部访问静态成员属性  self:: myCountry()

redis概述,特点,与Memached的不同,生产环境主从配置,redis配置文件解析

Redis概述: 是一个基于Key-Value的持久化数据库存储,支持丰富的数据类型,用C语言编写,可基于内存又可持久化的日志型.Key-Value数据库,并提供多种语言的API Redis特点 1.Key-Value健值类型存储 2.支持数据可靠存储及落地 3.单进程单线程高性能服务器 4.单机qps(每秒查询率)可以达到10w 5.适合小数据量高速读写访问 Redis跟Memached的不同 1.Redis可以持久化数据存储 2.性能高很,Redis能支持超过10W每秒的读写频率 3.丰富的