본문
170411(화) - Device Compatibility
Device Compatibility
다양한 환경에서 유연하게 대처해야 한다.
- app resources in static files (ex : XML)
Compatibility
Android는 오픈소스 프로젝트이고 각 하드웨어 제조사가 다르므로 Device compatibility와 App compatibility로 나뉜다.
Android execution environment = Android compatibility program
각 장치는 Compatibility Test Suite (CTS)를 통과해야 한다.
1. Device compatibility
2. App compatibility
developer가 신경써야할 부분은 app compatibility
Controlling your App's Availability to Devices
Android는 API 를 통해서 다양한 기능 제공
- harware-based & software-based
- platform version
가능한 많은 기기를 지원하도록 노력해야 한다.
Device features
Android는 모든 기기에서 사용할 수 없는 feature ID를 정의 해놓았음.
<manifest ... >
<uses-feature android:name="android.hardware.sensor.compass"
android:required="true" />
...
</manifest>
compass censor가 없다면 Google Play Store에서 해당 앱을 설치할 수 없다.
runtime 시점에서 체킹하고 싶다면
android:required="false"
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상에서 version도 제한 가능하다.
<manifest ... >
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />
...
</manifest>
runtime 상에서 version 체킹
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
// Running on something older than API level 11, so disable
// the drag/drop features that useClipboardManager
APIs
disableDragAndDrop();
}
Screen configuration
기기 screen 특성
- screen size : physical size
- screen density : density of the pixels on the screen.
generalized sizes
- small
- normal
- large
- xlarge
generalized densities
- mdpi
- hdpi
- xhdpi
- xxhdpi
- and others
Controlling for Business Reasons
Goggle Play developer console에서 다양한 restrict 옵션을 제공한다.
'Mobile > Android API' 카테고리의 다른 글
170418(화) - Java 8 언어 기능 사용 (0) | 2017.04.18 |
---|---|
170411(화) - System permission (0) | 2017.04.11 |
170328(화) - App 기본 항목 (0) | 2017.03.28 |
170328(화) - ART & Dalvik (0) | 2017.03.28 |
170328(화) - DEX (Dalvik Executable format) (0) | 2017.03.28 |
댓글