Korea Blog
안드로이드 XXXHDPI 지원을 잊지 마세요.
Wednesday, July 16, 2014
안드로이드 플랫폼은 앱 개발자 여러분이 다양한 디바이스와 스크린 사이즈를 지원할 수 있도록 API 와 여러 도구들 그리고
개발 가이드
를 제공합니다. 이와 동시에, 꼭 필요한 경우에는 앱이 지원하는 디바이스 와 스크린의 종류를 제한할 수 있는 방법도 함께 제공 되고 있습니다. 안드로이드 앱 개발자 여러분은 메니페스트 상에 몇 가지 요소 (element) 와 속성 (attribute) 들을 추가하여 프레임워크 API 레벨이 낮은 단말에서는 앱이 아예 설치되지 못하도록 막거나,
Google Play 필터
기능을 이용해 특정 조건을 만족하지 못하는 경우 Google Play 상에서 앱이 검색되지 않도록 제한 할 수 있습니다.
다만, 이를 잘 못 사용하는 경우, 실재 앱 동작에는 아무런 문제가 없는 디바이스 상에서도 여러분의 앱이 검색되거나 설치되는 것을 제한하여, 잠재적인 고객을 잃어버릴 수도 있습니다. 위 스크린 샷과 같이 Google Play 개발자 콘솔의
기기 사용 가능 여부 대화상자
를 확인하시면, 현재 여러분의 앱이 지원하고 있는 디바이스 목록을 한눈에 확인할 수 있으며, 혹시 지원되지 않는 디바이스의 숫자가 여러분의 생각보다 많다고 느껴지는 경우 아래 요소들을 올바르게 사용하고 있는지 한번 확인해보시기 바랍니다.
<compatible-screens>
어플리케이션이 지원하는 스크린의 종류를 화면 밀도 값과 화면 크기 값을 조합하여 정의할 수 있습니다. 단, 안드로이드 플랫폼은 다양한 스크린 사이즈를 지원할 수 있도록 API 와 여러 도구들 그리고
개발 가이드
를 제공하고 있으며, 일반적으로 이 요소의 사용은 권장되지 않습니다.
이 값은 앱의 실행이나 설치에 영향을 미치는 요소는 아니지만 Google Play 에서 앱을 필터링 할 때 사용됩니다. 만일 <compatible-screen> 요소가 메니페스트에 포함되어 있는 경우, <screen> 요소를 통해 명시적으로 정의되지 않은 모든 스크린은 앱과 호환되지 않는 것으로 간주되며, 호환되지 않는 스크린을 갖는 디바이스는 Google Play 상에 해당 앱을 검색하거나 설치할 수 없습니다.
특히, 최근 들어 높은 해상도 (QHD) 의 고밀도 화면 (xxxhdpi) 를 갖는 디바이스가 출시되면서, <compatible-screens> 요소를 명시적으로 선언하고 있는 앱의 경우 예기치 않게 유저들이 앱을 검색하거나 다운로드 하지 못하는 문제가 발생하고 있습니다. 여러분의 앱 메니페스트 파일 에서 <compatible-screen> 요소가 사용되고 있다면, 가능한 이 요소를 사용하지 않는 것을 권장드리며, 꼭 필요한 경우 최신 디바이스를 지원하기 위해서는 다음과 같이 호환되는 스크린 정보를 추가해야 합니다.
<screen
android:screenSize
=
"small"
android:screenDensity
=
"640"
/>
<screen
android:screenSize
=
"normal"
android:screenDensity
=
"640"
/>
<screen
android:screenSize
=
"large"
android:screenDensity
=
"640"
/>
<screen
android:screenSize
=
"xlarge"
android:screenDensity
=
"640"
/>
<use-sdk>
어플리케이션이 어떤 버전의 안드로이드 플랫폼과 호환되는지
API 레벨
값을 이용하여 정의할 수 있습니다. 다음과 같은 세 가지 속성이 사용됩니다.
android:minSdkVersion
어플리케이션 실행에 요구되는 최소 API 레벨을 지정합니다. 지정된 값 보다 타겟 디바이스의 프레임워크 API 레벨이 더 낮은 경우, 해당 디바이스에는 앱이 설치되지 않으며 동시에 Google Play 에서 해당 앱을 검색하거나 설치할 수 없습니다. 현재, 안드로이드 시스템 API 레벨별 점유율 정보는 개발자 문서 중
안드로이드 대시보드
항목에서 확인할 수 있습니다.
android:targetSdkVersion
앱이 개발 될 때 사용되고 테스트 된 가장 최신 버전의 API 레벨을 지정하는데 사용합니다. 이 속성 값은 Google Play 를 통한 검색이나 앱 설치 가능 여부에는 영향을 미치지 않습니다. 대신, 여러분의 앱이 어떤 버전의 안드로이드 플랫폼을 타켓으로 개발되고 테스트 되었는지 알려주는 역할을 하며, 안드로이드 시스템은 해당 값을 기반으로 필요한 경우 하위 호환 기능을 적용합니다.
targetSDKVersion < 11
targetSDKVersion >= 11
예를 들어 API 레벨 11 이 후 부터는 Holo 테마가 기본 시스템 테마로 변경되었습니다. 하지만, 위 그림에서 처럼 메니페스트 상의 targetSdkVersion 속성 값이 11 보다 작다면, Holo 테마가 아닌 이전 버전의 테마가 적용됩니다. 이 외에도
AsyncTask 의 동작 방식
등, targetSdkVersion 값에 따라 API 가 동작하는 방식이 달라지는 경우가 있습니다. 보다 자세한 내용은 개발자 문서의
Build.VERSION_CODES
항목을 참고하시기 바랍니다. 기본적으로, 최신 안드로이드 플랫폼의 기능을 모두 활용하고, 디바이스 사용자에게 일관된 사용자 경험을 제공할 수 있도록 targetSdkVersion 값은 적절한 테스트 후 항상 최신 API 레벨 값으로 설정하는 것이 권장됩니다.
android:maxSdkVersion
여러분의 앱이 특정 버전 이하의 안드로이드 플랫폼에서만 동작하는 경우, maxSdkVersion 속성을 사용해 특정 버전 이상의 안드로이드 플랫폼에서는 앱이 설치되지 않도록 제한할 수 있습니다. 다만, 안드로이드는 기본적으로 버전이 업데이트 되더라도 하위 호환성이 유지되기 때문에 대부분의 경우 개발자 여러분은 이 속성 값을 사용할 필요가 없습니다.
<uses-feature>
어플리케이션에서 필요로 하는 특정 하드웨어 혹은 소프트웨어 기능을 선언하는데 사용 됩니다. 이 값은
<uses-permission>
과는 달리,
앱 내에서 특정 API 나 기능을 사용하는데 영향을 미치지 않으며
, 오직 Google Play 앱 등 외부 어플리케이션이 앱의 특징을 확인하기 위해 사용 됩니다.
Google Play 앱은 실행 시,
PackageManager
를 통해 현재 디바이스에서 지원하는 기능 (feature) 목록을 확인 하여 저장한 후, 앱 검색 시 각각의 앱에 선언된 기능 목록과 현재 디바이스의 기능 목록을 비교하여 해당 앱을 노출할 지 말지를 결정합니다. 만일 꼭 필요하다고 선언된 기능 중 한 가지라도 만족하지 않는 경우, 그러한 디바이스를 사용하는 사용자는 해당 앱을 검색하거나 설치할 수 없게됩니다. 예를 들어 만일 개발자 여러분이 android.hardware.telephony 기능이 꼭 필요하다고 선언한 경우, 전화 기능이 없는 태블릿등의 기기에서는 Google Play 를 통해 여러분의 앱을 검색하거나 설치할 수 없게 됩니다.
이 요소를 이용해 선언할 수 있는
기능 목록
은 개발자 문서에서 확인 할 수 있으며, 개발자 여러분은 각각의 요소 마다 추가적으로 required 속성을 true 혹은 false 로 지정하여, 앱을 실행하는데 반드시 필요한 기능인지 아니면 있으면 좋지만 해당 기능을 지원하지 않는 디바이스 상에서도 앱이 동작 할 수 있는지 여부를 지정할 수 있습니다.
또한, 한 가지 주의할 점이 있습니다. 개발자 여러분이 명시적으로 <uses-feature> 요소를 선언하지 않더라도, 일부 하드웨어 기능에 대한 권한을 요청한 경우, 암시적으로 특정 기능에 대한 <uses-feature> 요소가 선언된 것 (uses-implied-feature
) 으로 자동으로 간주되는 경우가 있습니다.
예를 들어, 카메라 관련 API 를 사용하기 위하여
CAMERA
권한을 사용한다고 메니페스트에 선언되어 있는 경우, 암시적으로
'android.hardware.camera' 와 'android.hardware.camera.autofocus' 가 선언됩니다. 따라서,
의도하지 않게 앱이 Google Play 에서 필터링 되는 것으로 막기 위해 개발자 여러분은
required 속성을 false 로 하여
명시적으로 특정 기능이 앱이 동작하는데 반드시 필요한 것은 아니라는 점을 명확히 선언해 주어야 합니다. 특정한 권한 사용에 따라 암시적으로 추가되는 <uses-feature> 항목은 개발자 문서의
관련 문서
에서 확인하실 수 있으며,
암시적으로 선언된 uses-features 의 목록은 앱이 APK 파일로 패키징 된 후, 다음과 같이 aapt 툴을 이용하여 확인하실 수 있습니다.
aapt d badging TableMountain-debug-unaligned.apk
그럼 앱을 배포하거나 업데이트 하실 때는, 잠재적인 고객들을 잃어버리지 않기 위하여, 항상 Google Play 의 필터링 기능에 주의를 기울이시길 바랍니다.
No comments :
Post a Comment
ラベル
ad
AdMob
admob_sdk
Advanced Power Searching
Android
Android App Quality
android back button
Android back end
Android navigation
Android Player API
android server
android up button
androidL
androidtv
androidwear
App Translate Service
Audio Focus
Chrome
Chromecast
Code-in 2012
Core App Quality Guidelines
Daydream
design
designing for Tablets
designsprint
dialog
Drive SDK
Game Developers Conference
GCi
GCi 참가자
GDA
GDC
gdg
gdgkorea
Go
Google Cast
Google Code-in
Google Play
Google Play 스토어
Google Search
Google Summer of Code
Google+ Sign-In
Google+ Sign-In Bootcamps
Google+ 로그인
Google+ 로그인 부트캠프
googleanalytics
googleio
GooglePlay #AndroidDevStory #PlayStore #MaterialDesign #AndroidStudio #DeveloperConsole
GSOC
hackathon
HackFair 출품작
In-app Billing
io
io2014
ioapp
iobytes
ioextended
IRC Talk
IRC 서버
java7
kitkat
launch
Marshmallow
materialdesign
mobile ad
mobile_ads_sdk
multiscreen
NaCl
Native YouTube Player API
NRRN 사용 제한
Power Searching
product launch
SD 카드에 앱 설치
SecureKeyFactory
ux
webview
YouTube
YouTube Android Player API
YouTube API
YouTube API 3.0
YouTube API Update RSS Feed
광고
구글 HackFair
구글 Summer of Code
구글 개발자 사이트 홍보
구글 개발자 아카데미
구글 개발자 온라인 강좌
구글 검색
구글 고급 파워 서치
구글 드라이브 앱
구글 부트캠프
구글 아카데미
구글 코드인
구글 플러스 로그인
구글 핵페어
구글로 로그인하기
네이티브 클라이언트
데이드림
멀티 모바일
멀티 플랫폼
모바일 광고
수익화
스마트 브라우저
안드로이드
안드로이드 4.2
안드로이드 Back 버튼
안드로이드 Up 버튼
안드로이드 개인 정보 보호 정책
안드로이드 네비게이션
안드로이드 데이드림
안드로이드 디자인
안드로이드 방향탐색
안드로이드 보안
안드로이드 사용자 데이터
안드로이드 서버 백엔드
안드로이드 앱 품질
안드로이드 원격 제어
안드로이드 태블릿 디자인
안드로이드 현지화
안드로이드 화면 보호기
애드몹
애플리케이션 SD카드 설치
애플리케이션 개발 주민등록번호 사용 제한
애플리케이션 외부 저장 장치
앱 품질 체크리스트
오픈 소스
오픈소스 프로그램
웹 DMB
유튜브
유튜브 API
유튜브 API 3.0
유튜브 API 업데이트
유튜브 모바일
유튜브 안드로이드 플레이어 API
인앱 결제
인터넷상 주민등록번호 수집 이용 제한
주민등록번호 사용제한
추천이미지
출시
크롬브라우저
태블릿 디자인
태블릿용 앱
파워서치
한국 구글 개발자
한국 구글 개발자 사이트
핵심 앱 품질 가이드라인
핵심 태블릿 앱 품질 체크리스트
핵페어
핵페어 출품작
ブログ アーカイブ
2016
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
구글 멀티스크린 개발자 해커톤에 참여하세요!
Google I/O 2014 앱 소스코드가 공개되었습니다.
구글 나이트에서 구글 엔지니어를 직접 만나보세요
유료 버전의 안드로이드 웨어 앱을 개발할 때 주의할 점
안드로이드 웨어 시계 (Watch Face) 앱 개발에 관해 알려드립니다.
머티리얼 디자인 (Material Design) 이란?
안드로이드 XXXHDPI 지원을 잊지 마세요.
구글의 새로운 Pan-CJK (汎韓中日) 글꼴을 소개합니다
한국 개발자들과 함께 한 I/O Extended 2014
안드로이드 TV (Android TV) 맛보기
안드로이드 웨어(Android Wear) 앱 개발 시작하기
Google Play 서비스 5.0
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
March
February
January
2011
December
November
Feed
No comments :
Post a Comment