兼容性

兼容性

何为兼容

  1. 设备的兼容性
    设备必须是Android兼容的,也就是说设备要具有运行Android程序的环境,这要通过谷歌的Compatibility Test Suite (CTS)保证,通过CTS测试的设备,才是安卓兼容的。
  2. App的兼容性
    你的应用可以兼容运行在不同配置(硬件和软件平台)的机型上。主要考虑三个方面:

    • Device features
    • Platform versions
    • Screen configuration

    也可以通过以上要素,决定你的应用对不同配置设备的可用性。

控制应用对不同设备的可用性

Device features

在Manifest中明确声明需要的feature:

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

为了在不具备某feature上机型上运行你的应用,需要将该feature的required属性设为false,并在代码中作动态检查 hasSystemFeature():

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

Platform version

Manifest中声明:

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

minSdkVersion指你的应用可以兼容运行的最低版本;targetSdkVersion指你的应用达到最优化的版本,这个属性不妨碍你在更高版本上运行你的应用,然而你的应用不能享用更高版本的优化。
也可以在运行时动态判断平台版本,以决定在低版本上禁用某些功能:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
    // Running on something older than API level 11, so disable
    // the drag/drop features that use ClipboardManager APIs
    disableDragAndDrop();
}

Screen configuration

安卓按照屏幕物理尺寸和像素密度(dots per inch, DPI),将屏幕进行一般化分类:

  • 尺寸:small, normal, large, xlarge.
  • DPI:mdpi (medium), hdpi (hdpi), xhdpi (extra high), xxhdpi (extra-extra high), and others.

除了基于以上技术原因对设备过滤,也可以基于商业等非技术因素的考虑,来决定你的应用的可见性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值