设备兼容性
手机--平板--电视,Android需要广泛兼容。开发者需要灵活适配多种不同的屏幕。
何为兼容性?
设备兼容性:Android兼容,Android compatibility program && CTS
app兼容性:app对于潜在的设备是兼容的
控制app兼容性
大部分情况下,你可以运行时禁用部分特性,或者为不同配置的设备提供适配资源。
如有必要,可以通过Google Play Store限制app在不支持设备上的安装:
设备特性
1、特性必须有才能用的app,可以用manifest来强制指定:
<manifest ... > <uses-feature android:name="android.hardware.sensor.compass" android:required="true" /> ... </manifest>
Google Play Store会比较app需要的特性和当前手机支持的特性,如上定义,如果手机没有指南针硬件,那么将无法安装有此特性要求的app
2、特性可以有,可以没有,需要通过代码动态判断来裁剪功能:
PackageManager pm = getPackageManager(); if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) { // 设备如果没有指南针硬件,可以屏蔽指南针相关的功能 disableCompassFeature(); }
平台版本
1、app使用的api接口是在某个Android之上才有的,那必须要加上<uses-sdk>
和minSdkVersion
,比如:
<manifest ... > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" /> ... </manifest>
miniSdkVersion是指app能够兼容的最小版本号;而targetSdkVersion是指app能完美运行的最大版本号。
2、代码动态判断版本来裁剪功能:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { // 版本低于API Level 11时,可以禁用ClipboardManager apis中的drag/drop特性 disableDragAndDrop(); }
屏幕配置
屏幕大小:屏幕物理大小
屏幕密度:对角DPI
Smallscreen | QVGA (240x320) | 480x640 | ||
---|---|---|---|---|
Normalscreen | WQVGA400 (240x400)
WQVGA432 (240x432) |
HVGA (320x480) | WVGA800 (480x800)
WVGA854 (480x854) 600x1024 |
640x960 |
Largescreen | WVGA800** (480x800)
WVGA854** (480x854) |
WVGA800* (480x800)
WVGA854* (480x854) 600x1024 |
||
Extra Largescreen | 1024x600 | WXGA (1280x800)†
1024x768 1280x768 |
1536x1152
1920x1152 1920x1200 |
2048x1536
2560x1536 2560x1600 |