Do diffence

[번역] Future-Proofing Your App 본문

Android

[번역] Future-Proofing Your App

고포릿 2010. 11. 16. 14:54
Future-Proofing Your App

http://android-developers.blogspot.com/2010/06/future-proofing-your-app.html
Posted by Tim Bray on 21 June 2010 at 10:30 AM

[This post is by Reto Meier AKA @retomeier, who wrote the book on Android App development. — Tim Bray]
개발자로서 광범위한 장치에 실행 가능한 액을 만들 수 있는 단일 개발 플랫폼으로서의 안드로이드의 잠재력에 놀라고 있다. 스마트폰에서 텔레비전까지 다양한 HW에 사용되고 있다.
지난해 Android SDK 1.6 release은 다양한 HW에 적용이 가능한 첫번째 버전이었다. HTC Tattoo 같이 작은 스크린(mall screen sizes지원)에 자동포커스가 없는 폰에서 Google TV 처럼 가속도 와 전화기능이 없는 것 까지.

우리는 우리가 만든 앱이 가능한 많은 장치에서 동작하기를 바라지만 어떤 HW에서는 불가능할 것이다. 그래서 앱들이 가능한 장치에서만 동작할 수 있다고 알리는 것은 중요하다.


Android Market Rule #1: 애플리케이션을 새로운 장치에서 죽게하지 말라.


안드로이드 마켓 큐레이터로서 한 가지 중요한 책임은 소비자와 개발자가 마케에서 앱들이 동작하는 장치에 적적히 공급된다고 믿게하는 점이다.

Android SDK 에는 애플리케이션 개발자에게 어떤 HW 특징을 포함하고 있느지를 알릴 수 있게 지원하고 있다. 지원되는 HW 특징을 알 수 있으면 마켓에서는 앱이 동작 가능한 HW에 맞게 보여줄 수 있다.

Specify the hardware your app needs using the application Manifest

안드로이드 애플리케이션 명세서에 앱이 필요로 하는 hardware를 명시하라

명세서에는   target and minimum SDK versions 지원가능한 screen sizes, 앱을 멈추지않는 hardware 특징을 포함하고 있다. hardware 특성은  uses-feature를 명세서에 추가하여줄수 있다.
<uses-feature android:name="android.hardware.microphone" />
앱의 명세서를 필요로 하는 hardware features를 포함하게 갱신하면 향후 출시되는 hardware에 대응해
안전하게 앱을 유지시킬 수 있다.

Android Market Rule #2:현재 애플리케이션을 새로운 장치에서 죽게 하지 말라.

지나친 예일지 몰라도 - Android 1.6에서 small screen size 도입으로 - 개발자는 새로운 장치에서도 마켓에서 앱이 보여질 수 있도록 정확하게 해주어야 할 것이다.

다른 예로 안드로이드 ㅁ 마켓은 permissions requested 를 앱이 특정 hardware의 의존하는지 여부를 분석해야 할 것이다. 예를 들어 CALL_PHONE permission 요구은 전화기에 적용해야한다.

여지껏 우리는 AAPT 를 SDK(2.2)에 제공해서 앱에 요구되는 장치가 있는지를 확인할 수 있다.

aapt dump badging myApp.apk


앱에 특정 hardware 특성이 사용되지만 개발자가 테스트해보니 그 특성이 없어도 동작을 한다면 선택적으로 그 특성 사용을 false로 지정할 수 있다.

<uses-feature android:name="android.hardware.telephony" android:required="false" />

AndroidManifest 에 명확하게 앱이 요구하는 hardware 인지 혹은 선택적인지를 명시하라.

uses-feature name strings  으로 앱이 마켓에 잘 보여지게 할 수 있다. 현재 그리고 앞으로의 hardware 상에서도 적절하게 동작한다는 것을 확신을 줄 수 있다.

개발자로서 앱이 적절히 동작하고 가능한 장치들에 적절히 동작함을 알리는 것은 큰 관심사이다.  이제 AndroidManifest 를 갱신해서 지원 가능한 설정을 해두기 바란다.