[android] AndroidManifest.xml - 【 manifest -> 其他次要配置】
<uses-sdk>
作用:使应用程序的兼容性更好,指明应用程序需要的最小API,编译API以及最大支持的API。值都是整数
<uses-sdk android:minSdkVersion="integer" android:targetSdkVersion="integer" android:maxSdkVersion="integer" />
android:minSdkVersion ——> 指定运行应用程序所需的最低API级别。如果系统的应用程序的接口低于此属性中指定的值,则将防止用户安装应用程序。如果你不声明这个属性,系统默认值为“1”,这表明你的应用程序是兼容所有版本的安卓系统。
android:targetSdkVersion ——> 一个整数表示的应用程序的目标API级别。如果没有设置,默认值等于给定的例子。此属性通知系统,您已经对目标版本进行了测试,系统不应该允许任何兼容的行为,以保持您的应用程序的向前兼容。
android:maxSdkVersion ——> 若应用程序的maxSdkVersion属性低于系统自身使用的API级别,则系统将不允许应用程序被安装。在系统更新后重新验证的情况下,有效地从设备中删除您的应用程序。因此,不建议声明该属性。
<uses-configuration>
<uses-configuration android:reqFiveWayNav=["true" | "false"] 是否需要五向导航【上/下/左/右/当前】 android:reqHardKeyboard=["true" | "false"]是否需要硬件的键盘 android:reqKeyboardType=["undefined" | "nokeys" | "qwerty" | "twelvekey"]设置键盘的类型 android:reqNavigation=["undefined" | "nonav" | "dpad" | "trackball" | "wheel"]设置导航的类型 android:reqTouchScreen=["undefined" | "notouch" | "stylus" | "finger"] />设置触摸屏幕的类型
<uses-feature>
Android Market会根据应用定义的uses-feature过滤掉设备不支持的所有应用。
通过使用<uses-feature>元素,一个应用可以指定它所支持的硬件型号。举个例子,有些设备不支持多点触控或者OpenGL ES 2.0,那么过滤器就会过滤需要这些硬件支持(多点触控或者OpenGL ES 2.0)的应用,用户就不会在android market上看到这些应用。
<uses-feature android:name="string" android:required=["true" | "false"] android:glEsVersion="integer" />
name属性指定了应用的特征,required属性告诉过滤器我们是否在任何情况下必须要需要这个设备的支持,或者仅仅只是“nice to have”。
最后一个属性是可选择的,只是用在需要指定一个OpenGL ES版本的时候。
例如:我们可以使用 <uses-feature>元素来剔除所有不支持多点触控的设备,就像下面这样:
<uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="true"/>
再例如:如果你的游戏需要更强大的图形处理能力,我们可以指定OpenGL ES 2.0,然后我们的游戏只会被支持OpenGL ES 2.0的设备所看见。
<uses-feature android:glEsVersion="0x00020000" required="true"/>
<supports-screens>
<supports-screens android:resizeable=["true"| "false"] android:smallScreens=["true" | "false"] android:normalScreens=["true" | "false"] android:largeScreens=["true" | "false"] android:xlargeScreens=["true" | "false"] android:anyDensity=["true" | "false"] android:requiresSmallestWidthDp="integer" android:compatibleWidthLimitDp="integer" android:largestWidthLimitDp="integer"/>
这个元素用于指定应用程序所支持的屏幕尺寸,并针对比应用程序所支持的屏幕还要大屏幕,启用屏幕兼容模式
<compatible-screens>
<compatible-screens> <screen android:screenSize=["small" | "normal" | "large" | "xlarge"] android:screenDensity=["ldpi" | "mdpi" | "hdpi" | "xhdpi"] /> ... </compatible-screens>
这个元素用于指定那些屏幕配置跟应用程序是兼容的。在应用的清单中只允许有一个<compatible-screent>元素的实例,但是它能够包含多个<screen>元素。每个<screen>元素指定一个特定的跟应用程序兼容的尺寸---密度组合。Android系统不会读取<compatible-screen>清单元素(无论是在安装的时候,还是在运行的时候)。这个元素的信息只能被外部服务使用(如Google Play),以便使其能够更好的理解应用程序跟指定屏幕配置的兼容性。
<supports-gl-texture>
<supports-gl-texture android:name="string" />
声明本应用程序支持的一种 GL 纹理压缩格式。所谓应用程序“支持”的 GL 纹理压缩格式,是指该应用程序安装到某设备之后就能够提供以这种格式压缩的纹理数据。 应用程序可以由 .apk
文件提供本地的压缩数据,也可以在运行时从服务器下载数据。
每个 < supports-gl-texture >
元素只能声明一种所支持的纹理压缩格式, 这通过 android:name
属性值进行指定。 如果应用程序支持多种纹理压缩格式,可以声明多个 < supports-gl-texture >
元素。例如:
< supports-gl-texture android:name="GL_OES_compressed_ETC1_RGB8_texture" / >
< supports-gl-texture android:name="GL_OES_compressed_paletted_texture" / >
纹理压缩格式描述符 | 说明 |
---|---|
GL_OES_compressed_ETC1_RGB8_texture |
Ericsson 纹理压缩。在 OpenGL ES 2.0 中定义,适用于所有支持 OpenGL ES 2.0 的 Android 平台设备。 |
GL_OES_compressed_paletted_texture |
通用的带调色板的纹理压缩。 |
GL_AMD_compressed_3DC_texture |
ATI 3Dc 纹理压缩。 |
GL_AMD_compressed_ATC_texture |
ATI 纹理压缩。适用于运行 Adreno GPU 的设备,包括 HTC Nexus One、Droid Incredible、EVO 等等。 为了保证最大的兼容性,设备还可以用GL_ATI_texture_compression_atitc 描述符来声明 < supports-gl-texture > 元素。 |
GL_EXT_texture_compression_latc |
Luminance alpha 纹理压缩。 |
GL_EXT_texture_compression_dxt1 |
S3 DXT1 纹理压缩。适用于 Nvidia Tegra2 平台的设备,包括 Motorala Xoom、Motorola Atrix、Droid Bionic 等等。 |
GL_EXT_texture_compression_s3tc |
S3 纹理压缩,但不支持 DXT 变体。 适用于 Nvidia Tegra2 平台的设备,包括Motorala Xoom、Motorola Atrix、Droid Bionic 等等。 如果应用程序需要 DXT 变体,请换用上一条描述符进行声明。 |
GL_IMG_texture_compression_pvrtc |
PowerVR 纹理压缩。 适用于带有 PowerVR SGX530/540 GPU 的设备,比如 Motorola DROID 系列;Samsung Galaxy S、Nexus S 和 Galaxy Tab 等等。 |
<instrumentation>
<instrumentation android:functionalTest=["true" | "false"] android:handleProfiling=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:targetPackage="string" />
声明一个 Instrumentation
类, 用于监视应用程序与系统之间的交互。 Instrumentation 对象将在所有应用程序组件之前被实例化。
属性:
android:functionalTest
- Instrumentation 类是否要作为功能性测试来运行 — “
true
”表示是,“false
”表示否。 默认值是“false
”。 android:handleProfiling
- Instrumentation 对象是否能够开启和关闭性能分析功能(profiling) — “
true
”表示它可以自行决定何时启动和停止,“false
”表示整个运行期间都将持续开启。 设为“true
”使得 Instrumentation 对象可以只针对某些操作进行性能分析。 默认值是“false
”。 android:icon
- 代表 Instrumentation 类的图标。这个属性必须设为 drawable 资源。
android:label
- 供用户阅读的代表 Instrumentation 类的文本标签。可直接设为字符串,也可设为对字符串资源的引用。
android:name
Instrumentation
子类的名称。 应设为完全限定格式的类名称(比如“com.example.project.StringInstrumentation
”)。 不过作为简称,如果类名的首字符是句点,则< manifest >
元素中设置的包名将会自动添加到前面。没有默认值,类名必须指定。android:targetPackage
- 运行 Instrumentation 对象对应的应用程序。 应用程序由其 Manifest 文件中
< manifest >
元素设置的包名称指定.