Android API Guides---App Manifest <supports-screens> <uses-configuration>

<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"/>

包含于

<manifest>

描述:

让您指定屏幕尺寸您的应用程序的支持,使屏幕兼容模式比应用程序支持什么更大的屏幕。你总是使用这个元素在应用程序中指定屏幕尺寸您的应用程序的支持是很重要的。

应用程序“支持”如果给定的屏幕尺寸调整大小适当地填满整个屏幕。该系统应用正常调整大小适用于大多数应用程序,你不必做任何额外的工作,使比手机设备更大的屏幕应用程序的工作。但是,您通过提供替代布局资源优化应用程序对不同屏幕尺寸的用户界面往往很重要。例如,您可能需要修改活动的布局时,它是在平板电脑相比,手机设备上运行时。

但是,如果调整??大小以适应不同的屏幕尺寸,当应用程序无法正常工作,您可以使用<支持屏>的属性元素来控制应用程序是否应分发给更小的屏幕还是有它的UI放大(“放大“),以适应使用系统的屏幕兼容模式更大的屏幕。当你已经不适合更大的屏幕尺寸和正常调整大小并没有达到相应的效果,屏幕兼容模式将通过模拟一个正常大小的屏幕和中密度,然后放大,使其充满整个屏幕缩放你的用户界面。要注意的是这会导致像素化和UI的模糊,因此,如果您优化的用户界面为大屏幕它的更好。

注:Android 3.2的推出新的属性:机器人:requiresSmallestWidthDp,安卓compatibleWidthLimitDp,和android:largestWidthLimitDp。如果你正在开发Android 3.2和更高版本应用程序,你应该使用这些属性来声明屏幕尺寸的支持,而不是基于广义屏幕大小的属性。

有关如何正确地支持不同的屏幕尺寸,这样就可以尽量避免使用屏幕兼容模式与应用程序的更多信息,请阅读支持多种屏幕。

属性:

android:resizeable

指示应用程序是否是可调整大小不同的屏幕大小。此属性是真实的,默认情况下。如果设置为false,系统将在大屏幕上运行屏幕兼容模式应用程序。

此属性已被弃用。据介绍,以帮助应用过渡,从Android 1.5的到1.6时,首次引入了多屏幕的支持。你不应该使用它。

android:smallScreens

指示应用程序是否支持屏幕较小的外形尺寸。一个小的屏幕被定义为一个具有较小纵横比“正常”(传统的HVGA)屏幕。不支持小屏幕的应用程序将无法使用从外部服务小屏幕设备(如谷歌播放),因为很少有这个平台可以做,使一个小屏幕上这样一个应用程序的工作。这是“真”默认。

android:normalScreens

指示应用程序是否支持“正常”屏幕的外形尺寸。传统上,这是一HVGA介质密度的屏幕,但WVGA低密度和WVGA高密度也被认为是正常的。该属性是“真”默认。

android:largeScreens

指示应用程序是否支持更大的屏幕形式因素。大屏幕被定义为一个屏幕,是不是一个“正常”的手机屏幕显著较大,因此可能需要对应用程序的一部分,一些特殊的照顾好好利用它,虽然它可能依赖于系统调整,以填补
屏幕。

它的默认值实际上一些版本之间变化,所以它的更好,如果你明确地在任何时候宣布这个属性。若设置为“假”一般会启用屏幕兼容模式。

android:xlargeScreens

指示应用程序是否支持超大屏幕的外形尺寸。一个XLARGE屏幕被定义为屏幕,比“大”屏幕显著较大,如片剂(或更大的东西),并可能需要对应用程序的一部分,特别注意利用好它,虽然它可能依靠调整该系统填补了屏幕。

它的默认值实际上一些版本之间变化,所以它的更好,如果你明确地在任何时候宣布这个属性。若设置为“假”一般会启用屏幕兼容模式。

此属性是在API级9出台。

android:anyDensity

指示应用程序是否包括资源,以适应任何屏幕像素密度。

对于支持的Android1.6(API等级4)和更高的应用程序,这是在默认情况下“真”,你不应该设置“假”,除非你是绝对肯定的是,有必要为您的应用工作。它可能是唯一需要时间来关闭是,如果你的应用程序直接操纵位图(更多信息,支持多种屏幕的文档)

android:requiresSmallestWidthDp

指定所需的最小最小的宽度。最小的宽度是,必须提供给您的应用程序的用户界面,也就是说,最短可用屏幕的两个维度的屏幕空间的最短尺寸(以dp为单位)。因此,为了使设备被认为与应用程序兼容,该设备的smallestWidth必须大于该值等于或更大。
(通常情况下,您为这个值就是“最小宽度”,你的布局支持,无论画面的当前方向。)

例如,一个典型的手机屏幕上有一个最小宽度的320dp,7“平板电脑有一个600dp的最小宽度和10”平板电脑有一个720dp最小宽度。这些值通常是最小宽度,因为它们是在屏幕的可用空间的最短尺寸。

这对你的价值进行比较的大小会考虑到屏幕装饰和系统界面。例如,如果该装置具有在显示器上一些持久UI元素,则系统会声明设备的smallestWidth为一个比实际屏幕尺寸小,占这些UI元素,因为这些是可提供的UI画面的像素。因此,您使用的值应该是布局所需的最小宽度,无论画面的当前方向。

如果你的应用程序中正确调整大小较小的屏幕尺寸(下到小尺寸或320dp的最小宽度),你并不需要使用这个属性。否则,你应该为这个属性相匹配的最小屏幕宽度预选赛(SW <N> DP)使用你的应用程序中的最小值使用的值。

注意:Android系统并没有注意这个属性,因此它不会影响你的应用程序的行为在运行时。相反,它是用来启用过滤为您的服务,如谷歌Play应用程序。不过,目前谷歌播放不支持过滤这个属性(在Android 3.2),所以你应该继续使用,如果你的应用程序不支持小屏幕的大小等属性。

这个属性在API级别13引入的。

android:compatibleWidthLimitDp

该属性允许您通过指定您的应用程序设计的最大“最小屏幕宽度”来启用屏幕兼容模式为用户可选功能。如果设备的可用屏幕的最小边比这里你的价值越大,用户仍然可以安装应用程序,但提供给屏幕兼容模式下运行它。默认情况下,屏幕兼容模式被禁止,你的布局调整大小以适应屏幕像往常一样,但一个按钮在系统栏,使用户可以打开和关闭屏幕兼容模式下可用。

如果您的应用程序与所有的屏幕尺寸兼容,其布局调整大小正确,你不需要使用这个属性。

注意:目前,屏幕兼容模式只模拟手机屏幕有320dp宽度,屏幕兼容模式,如果你的Android的值不应用于:兼容宽度限制p比320大。

这个属性在API级别13引入的。

android:largestWidthLimitDp

此属性允许通过指定您的应用程序设计的最大“最小屏幕宽度”,可以强制启用屏幕兼容模式。如果设备的可用屏幕的最小侧比你更大的价值在这里,应用程序屏幕兼容模式运行,没有办法为用户禁用它。

如果您的应用程序与所有的屏幕尺寸兼容,其布局调整大小正确,你不需要使用这个属性。否则,你应该首先考虑使用了android:兼容宽度的限制属性。你应该使用android:largestWidthLimitDp属性,只有当调整为更大的屏幕和屏幕兼容模式时,用户应该使用你的应用程序的唯一方法您的应用程序在功能上打破。

注意:目前,屏幕兼容模式只模拟手机屏幕有320dp宽度,因此,如果您为Android值不应用于屏幕兼容模式:largestWidthLimitDp比320大。

这个属性在API级别13引入的。

<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"] />

包含于

<manifest>

描述:

指明了硬件和软件功能的应用需要。例如,一个应用程序可以指定其需要的物理键盘或特定的导航装置,如轨迹球。该规范是为了避免安装在哪里,它不会工作设备的应用。

注意:大多数应用程序不应该使用这个清单标签。你应该总是支持,以协助视障用户和支持设备,除了或代替触摸提供D-键盘输入一个方向键(D-PAD)输入。有关如何支持您的应用程序D-键盘输入信息,请阅读启用焦点导航。如果您的应用程序绝对不能没有触摸屏功能,则改用<使用特征>标签来声明所需的触摸屏类型,从“android.hardware.faketouch”基本触摸式的事件更先进的触摸类型,比如“ android.hardware.touchscreen.multitouch.jazzhand“从多个手指不同的输入。

属性:

android:reqFiveWayNav

不管是不是应用程序需要一个五向导航控制
- “真”,如果是的话,和“假”如果不是。五向控制是一个可以移动选择向上,向下,向右或向左移动,并且还提供了调用当前选择的一种方式。它可能是一个D垫(定向板),轨迹球,或其他设备。

如果应用程序需要的方向控制,而不是一个特定类型的控制,它可以将该属性设置为“真”,并忽略红色导航属性。然而,如果需要特定类型的方向控制,它可以忽略这个属性和设置REQ导航代替。

android:reqHardKeyboard

不管是不是应用程序需要一个硬件键盘
- “真”,如果是的话,和“假”如果不是。

android:reqKeyboardType

该式键盘的应用需要,如果有的话在所有。此属性并不硬件和软件键盘区分开来。如果需要某种类型的硬件键盘,此处指定的类型和还设置reqHardKeyboard属性为“真”。

该值必须是下列字符串之一:

Value Description
"undefined" 应用程序不需要键盘。 (键盘需求是不确定的。)这是默认值。
"nokeys" 应用程序不需要键盘。
"qwerty" 应用程序需要一个标准的QWERTY键盘
"twelvekey" 应用程序需要一个十二键键盘,像大多数手机上 - 通过9加星号(*)和井号(#)键的键从0数字。

android:reqNavigation

所需的应用程序的导航装置,如果有的话。该值必须是下列字符串之一:

Value Description
"undefined" 该应用程序不需要任何类型的导航控制。 (导航要求未被定义。)这是缺省值
"nonav" 该应用程序不需要导航控制。
"dpad" 该应用程序需要导航D-垫(方向键)
"trackball" 该应用程序需要导航轨迹球。
"wheel" 该应用程序需要一个导航轮。

如果应用程序需要一个导航控制,但控制的确切类型并不重要,它可以设置reqFiveWayNav属性为“true”,而不是设置这一项。

android:reqTouchScreen

类型的触摸屏的应用需要,如果任何在所有。该值必须是下列字符串之一:

Value Description
"undefined" The application doesn‘t require a touch screen. (The touch screen requirement is undefined.) This is the default value.
"notouch" The application doesn‘t require a touch screen.
"stylus" The application requires a touch screen that‘s operated with a stylus.
"finger" The application requires a touch screen that can be operated with a finger.

Note: If some type of touch input is required for your app, you should instead use the <uses-feature> tag
to declare the required touchscreen type, beginning with "android.hardware.faketouch" for basic touch-style events.

Value Description
"undefined" The application doesn‘t require a touch screen. (The touch screen requirement is undefined.) This is the default value.
"notouch" The application doesn‘t require a touch screen.
"stylus" The application requires a touch screen that‘s operated with a stylus.
"finger" The application requires a touch screen that can be operated with a finger.

Note: If some type of touch input is required for your app, you should instead use the <uses-feature> tag
to declare the required touchscreen type, beginning with "android.hardware.faketouch" for basic touch-style events.

Value Description
"undefined" The application doesn‘t require a touch screen. (The touch screen requirement is undefined.) This is the default value.
"notouch" The application doesn‘t require a touch screen.
"stylus" The application requires a touch screen that‘s operated with a stylus.
"finger" The application requires a touch screen that can be operated with a finger.

Note: If some type of touch input is required for your app, you should instead use the <uses-feature> tag
to declare the required touchscreen type, beginning with "android.hardware.faketouch" for basic touch-style events.

Value Description
"undefined" The application doesn‘t require a touch screen. (The touch screen requirement is undefined.) This is the default value.
"notouch" The application doesn‘t require a touch screen.
"stylus" The application requires a touch screen that‘s operated with a stylus.
"finger" The application requires a touch screen that can be operated with a finger.

Note: If some type of touch input is required for your app, you should instead use the <uses-feature> tag
to declare the required touchscreen type, beginning with "android.hardware.faketouch" for basic touch-style events.

时间: 2024-10-27 04:39:09

Android API Guides---App Manifest <supports-screens> <uses-configuration>的相关文章

翻译Android API Guides: App Manifest

原文在这里:http://developer.android.com/guide/topics/manifest/manifest-intro.html *Manifest译作"清单",这里沿用英文便于理解,其它术语同理. **文中链接都会跳转到android开发者网站. App Manifest 每一个应用都必须在它的根目录有一份AndroidManifest.xml文件(必须使用这个名字).Android系统必须在运行应用的任何代码之前了解一些重要信息,这些信息就来自于这份mani

android API Guides学习--Introduction(1)

android介绍: android提供了丰富的应用程序开发框架,它允许你在java语言环境中为移动设备创建独特的应用程序与环境. 1android应用程序提供多个入口点 android 应用程序是由不同的组件组合而成的,每个组件都被单独调用.activity组件提供一块屏幕作为使用者的界面.service独立的在幕后执行. 你可以使用intent类来实现组件的切换.也可以在一个app中多次调用同一个组件.例如在一个地图应用程序中显示地址的activity组件.该模型为一个单一的应用程序提供了多

Android API Guides – Introduction to Android

Android介绍 声明: 本文由Gordon翻译 发布于www.dlvoice.com 欢迎转载,但请保留此声明 原文地址:http://developer.android.com/guide/index.html Android提供了丰富的应用框架以便用户能够创建使用Java的环境来在移动设备上开发有创新性的应用和游戏.Android API Guides文档将会详细描述如何使用Android不同API来开发应用. 假如你是Android开发的新手,最好首先了解一下下面列出的Android

Android API Guides –Device Compatibility

设备的兼容性 声明: 本文由Gordon翻译 发布于www.dlvoice.com 欢迎转载,但请保留此声明 原文地址:http://developer.android.com/guide/practices/compatibility.html Android可以运行在不同类型的设备上,从手机到平板以及电视都可以运行.这些不同的设备将为开发者提供大量的潜在用户.那么为了能够让你的应用在所有的设备上运行良好,你就需要接受一些特性的多样性以及提供一个不同屏幕配置的友好的用户接口. 为了达到这样的目

【Android API Guides 简译(一)】App Resourses--Overview

将数据与程序分开的原因,表面是为了独立的管理数据,深层原因是使App兼容不同的环境即使你的数据支持不同语言或者不同屏幕大小的特殊设备.这是非常且越来越重要的! 对于各种各样的资源,我们统一分成两种: 默认资源和针对不同环境的备选资源 举个例子,默认资源存放在res/layout/ directory下,针对于横摆方向的设备的备选资源存放在res/layout-land/ directory(横摆方向的设备的具体方式见图).当只有默认资源时,见图1.当设置了备选资源时,见图二,Android系统会

android API Guides 之 web app --------------Building Web Apps in WebView(WebView与页面的绑定)

如果你要在手机端实现一个web app或在app里加载一个web页面,那么你就要用到WebView控件.这WebView类是View类的扩展子类,它允许web页面作为应用布局的一部分来展示.它是不具备一个完整的浏览器的那些特性,例如WebView没有导航栏,地址栏等.WebView的默认功能就是去找事WebView. 当你在你的app里面加一些以后可能跟新的信息时(例如用户协议或用户指南),你是用WebView那是非常有帮助的.在你的应用里,你可以创建一个带有WebView的activity,然

android API Guides 之 web app -------------Targeting Screens from Web Apps(屏幕适配)

如果你在Android设备上设计开发一款web应用,你就应该考虑web页面在不同屏幕上的显示问题.因为Android有很多不同类型的手机屏幕,所以你应该去考虑那些影响web页面在Android设备上显示的因素. 注意:本文中描述的以下特性,已经在Android 2.0或更高的版本中的Android浏览器(Android系统默认的)和WebView(Android中用于显示网页的控件)上得到支持.第三方的浏览器可能不支持这些的属性.(也就是说只做了解) 针对web页面适配Android设备,你应该

android API Guides学习--Introduction(2)

应用程序基本原理: android应用程序是用java语言编写的,android SDK工具在APK(Android package)里编译代码(数据文件和资源文件).apk是一个后缀为.apk的档案文件,1个apk文件包含了android应用程序的所有内容,apk是用来安装应用程序的基于android的设备.一旦安装了apk文件,每个app运行在自己安全的沙盒中. android操作系统是一个多用户的Linux操作系统,每一个app有一个不同的用户. 系统默认给各自的app分配一个唯一的Lin

android API Guides学习--Intent and Intent Filters

Intent是一个消息传递类,同时可以启动一些组件 作用: 1启动一个activity组件. 通过Context类的 startActivity()/ startActivity ()方法启动activity组件. 2启动一个service组件 通过Context类的startService()方法启动此组件,只能执行一次性操作(例如下载文件). 通过Context类的 bindService()方法 3发送一条广播 通过Context类的sendBroadcast(), sendOrdered

Android API Guides –System Permissions

系统权限 声明: 本文由Gordon翻译 发布于www.dlvoice.com 欢迎转载,但请保留此声明 原文地址:http://developer.android.com/guide/topics/security/permissions.html Android是一个特权分离的操作系统,运行在其上的应用都有一个特定的系统身份(Linux的用户ID和组ID).系统的部分也会被分为特定的身份,Linux就是通过这个身份来区别各个应用的. 更加详细的安全特性是通过"权限"机制来控制一个进