본문

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 use ClipboardManager 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

공유

댓글