声明应用需求-Declaring application requirements

有许多设备装了Android,但它们并不提供所有相同的特点和功能.为了避免你的应用,装在一个没有你应用所必特征的设备上.通过在你的 manifest文件中声明软件硬件要求,明了的指出你的应用支持的硬件类型是非常重要的大多数声明仅仅只是信息,系统并不读取他们,但像Android 市场这样的其他服务,将读取它们,以便让用户在为他们的设备寻找应用时,可以进行筛选.

比如,如果你的应用需要有照相机,并且使用的API是2.1(API Level 7),你应在你的manifest文件中声明这些要求.这样,那些没有照相机并且Android版本低于2.1的设备,就不能从Android市场上安装你的应用.

但,你也可以声明你的应用使用camera,但不必须要求。那种情况,你的应用必在运行时一个检查,以确定设备是否有一个照相机,如果没有照相机,并禁止与照相相关的功能。

下面是一些重要的设备特性,你在设计和开发应用时必须要考虑的..

  • creen size and density 屏幕尺寸与解释度

  • 为了能从它们的屏幕尺寸来分类设备,Android为每个设备定义了两个特性:屏幕尺寸(屏幕的物理尺寸)和解释度(在屏上的像素的物理密度,或者dpi--每英寸的点数).为了简化屏幕配置的所有不同类型,Android系统把它们分成可选的组,以便更容易定位

  • 屏幕大小:小,正常,大和极大

  • 屏幕解释度:低解释度,中解释度,高解释度,和极高解释度

  • 默认情况下,你的应用是兼容所有屏幕尺寸和解释度的,因为Android系统对此做了适当的调整,以使得它适合你的UI布局和图像资源

  • 然而,你应为某个屏幕尺寸创建特殊的布局,并为某些解释度提供特定的图像,使用可选的资源,并在你的manifest文件中用<supports-screens> 元素声明,以明确指出你的应用支持的屏幕尺寸.

  • 更多信息,参考Supporting Multiple Screens文档

  • Input configurations 输入配置

  • 许多设备为用提供了一个不同类型输入装置,比如,硬件键盘,轨迹球,five-way导航pad.如果你的应用必须要一个特别的输入硬件, 那么你应在你的应用中使用<uses-configuration>元素声明.但时,应用必须要一个特别的输入配置的情况是极少的.

  • Device features 设备特性

  • 在一个装有Android的设备中,有许多软硬件特性,有可能有,或有可能没有。比如照相机,光敏器件,蓝牙,或某个版本的OpenGL, 或者触模屏的精度.你应该从不假设,在所有的装有Android的设备中某个特点是可用的(除了标准的Android库),所以你应该用 <uses-feature>元素声明你的应用支持的特征.

  • Platform Version 平台版本

  • 不同的Android设备,经常运行不同的Android平台版本,比如Android1.6或者2.3. 每一个成功的版本通常包括在前一个版本中不可用的API。为了指出,那些APIs集是可用的,每个平台版本指定了一个API Level(比如, Android 1.0 is API Level 1 and Android 2.3 is API Level 9).如果你使用的APIs是在1.0版之后,加入到平台的,你应该用<uses-sdk>元素,声明最小API级别,这样就指出了那些 API将被采用.

为你的应用声明所有必要性的要求非常重要.因为,当你把你的应用发布到Android市场.市场,将用这些声明信息来过滤出,那些应用在每个设备是可用的. 同样,你的应用应该只能在满足所有你应用需求的设备上才可用.

更多关于Android市场如何基于这些需求过滤的,请看Market Filters文档