Device Compatibility

设备兼容性

    安卓被设计运行在很所不同类型的设备,从手机到平板电脑和电视。作为开发者,设备的范围为应用程序提供了一个巨大的潜在观众。为了应用程序在全部这些设备成功的,应该容忍一些特性的变化性,和提供一个灵活的使用界面适合不同的屏幕配置。
    促进你的努力朝着目标,Android提供一个动态应用程序框架提供配置特性应用程序资源在静态文件(如不同屏幕大小不同的XML布局)。Android加载基于当前设备配置适当的资源。所以一些深谋远虑你的应用设计和一些额外的应用程序资源,您可以发布一个应用程序包(APK)提供了一个优化用户体验在不同的设备上。
    如果需要,或许你可以指定(specify)应用程序的特性要求和控制类型的设备可以安装你的应用从谷歌商店。这个页面解释了你可以控制哪些设备可以访问您的应用程序,以及如何准备你的应用程序,以确保他们达到正确的观众。更多的信息你可以让你的应用程序如何适应不同的设备,阅读支持不同的设备

兼容性是什么意思??

    当你阅读更多关于安卓开发,您可能会遇到这个词在各种情况下“兼容性”。有两种类型的兼容性:设备兼容性和应用程序的兼容性。
    因为Android是一个开源工程,任何硬件制造商可以建立一个运行Android操作系统的设备。然而,设备是Android兼容的,只要它可以正确地运行应用程序的Android执行环境。Android的确切细节执行环境是由Android兼容程序和每个设备必须通过兼容性测试套件(CTS)为了被认为是兼容的。
    作为应用程序开发人员,您不需要担心是否Android设备兼容,因为只有Android兼容的设备包括谷歌商店。所以你可以放心,用户安装你的应用从谷歌玩商店使用的是Android兼容的设备。
    然而,你需要考虑你的应用程序是否兼容每个潜在的设备配置。因为Android运行在一个设备配置范围,在全部的设备上一些特性不是可获取的。比如,一些设备上没有罗盘传感器。如果你的应用程序的核心功能需要使用罗盘传感器,然后你的应用程序是仅兼容只拥有罗盘传感器的设备。

控制你的APP的可用性

    Android支持一个各种特性你的app可以通过API平台利用的。一些特性是基于硬件(罗盘传感器),一些是基于软件(如app小工具),一些还依赖平台版本。没有每个设备支持每个特性,所以你可能需要控制你的app的可用性基于你的app的必须的特性。
    为了达到你的app最大的使用合理,作为合理的简单APK你应该努力支持许多设备配置。在大多数情况,在运行时可以通过禁用可选特性选择不同的配置和提供应用程序资源(比如不同的布局不同的屏幕尺寸)。然而,如果有必要,你可以限制你的应用程序的可用性设备通过谷歌play商店基于以下设备特点:

- 设备特性
- 平台版本
- 屏幕配置

设备特性

    基于设备特性为了你管理app的兼容性,对于任何硬件或者软件特性Android定义 特性ID 可能不兼容所有设备。比如,是罗盘传感器的特性ID是 FEATURE_SENSOR_COMPASS ,APP小工具的是FEATURE_APP_WIDGETS

    如果有必要,你可以防止用户安装你的应用时设备不提供一个给定的功能通过声明它< uses-feature >元素的appmanifest file

    例如,如果app在一个缺少罗盘传感器的设备上是没有意义的,你可以声明罗盘传感器是必须的,使用以下清单标签:

<manifest ... >
    <uses-feature android:name="android.hardware.sensor.compass"
                  android:required="true" />
    ...
</manifest>

    谷歌play商店对比你的app必须的特性和这特性可用在用户的设备,决定你的app是否适合每一设备。如果设备不提供所有特性你的app必须的,用户不可以安装你的app。

    然而,如果你的app的主要功能不必须设备特性,你应该设置 required 属性为 false ,检查设备在运行时特性。如果你的app特性不可用当前设备,优雅地降低相应的应用功能,比如,你可以查询特性是否可用,通过 hasSystemFeature() 是这样:

PackageManager pm = getPackageManager();
if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
    // This device does not have a compass, turn off the compass feature
    disableCompassFeature();
}

    信息所有的过滤器可用于控制应用程序的可用性,用户通过谷歌play商店,看到 Filters on Google Play

Note:一些 系统权限 暗中地必须可用的设备特性。比如,如果你的app申请权限使用 蓝牙 ,暗中地必须 FEATURE_BLUETOOTH 设备特性。你可以禁用过滤基于这一特性,使应用程序可用的没有蓝牙设备,通过设置 required 的属性设置为 “false”* * 便签。对于更多信息关于暗中必须设备特性,阅读 Permissions that Imply Feature Requirements

平台版本

    不同的设备可能运行在不同的Android平台版本,不如Android4.0或者Android4.4每个后续的平台版本通常添加了新的api不是先前版本中可用。表明哪一组API可用,每个平台版本指定一个API级别。例如,Android 1.0 API级别1,Android 4.4 API级别19。
    API级别允许您声明应用程序的最低版本是兼容,使用 < uses-sdk > 标记及其 minSdkVersion 属性。
    比如,日历API是在Android4.0(API级别14)被添加的。如果你没有这些API应用程序就不能正常发挥作用,你应该声明API级别14作为你的应用的最小支持版本是这样的:

<manifest ... >
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />
    ...
</manifest>

    低SDK版本 (minSdkVersion) 属性声明最低版本兼容和 (targetSdkVersion ) 属性声明最高版本一直优化你的app

    每个后续版本的Android提供了应用程序兼容性建成使用api从之前的平台版本,因此你的应用应该兼容未来版本的Android在使用文档Android api。

Note: * targetSdkVersion* 属性并不阻止应用程序安装在平台版本高于指定的值,但它很重要,因为它表明系统应用程序是否应该继承行为的变化更新的版本。如果你不更新 targetSdkVersion 到最新版本,系统假定你的app必须一些向后兼容最新版本上运行时的行为。比如,在Android4.4的行为变化,警报使用 AlarmManager AlarmManager API创建的默认现在不准确所以系统可以批处理应用程序警报和保护系统,但该系统将保留之前的API应用程序的行为,如果你的目标API级别低于“19”。

    然而,如果您的应用程序使用API版本添加到最近的一个平台,但不需要为其主要功能,在运行时您应该检查API级别和优雅的降低相应的特性在API级别太低了。在这种情况下,设置minSdkVersion最低的值为你的app的主要功能,然后比较当前系统的版本,在 Build SDK_INT ,一个代号常量。VERSION_CODES对应于你想检查的API级别。例如:

控制应用程序的可用性商业原因

    除了限制应用程序的可用性基于设备特征,有可能你可能需要限制应用程序的可用性对商业或法律原因。例如,一个应用程序显示为伦敦地铁列车时刻表不太可能对用户有用的在英国。对于这种类型的情况下,谷歌玩商店提供了过滤选项在开发人员控制台,允许你控制你的应用程序的可用性等非技术原因或无线运营商用户的区域设置。
    过滤技术兼容性(如所需的硬件组件)总是基于信息包含在您的APK文件。但过滤非技术原因(如地理区域)总是在谷歌玩开发人员控制台处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值