설.현.아빠
안드로이드마켓 MultipleScreens 삽질..(갤노트와 갤S2) 본문
아...저 토나오는 광경...같은게 하나도 없는 물건들...
갤럭시 노트 해상도 : 1280 * 800 Density : xhdpi 크기 : 5.3인치(large screen) OS : Android 2.3 |
갤럭시 S2 해상도 : 800 * 480 Density : hdpi 크기 : 4.3인치(normal screen) OS : Android 2.3 |
갤럭시 탭 10.1 해상도 : 1280 * 800 Density : mdpi 크기 : 10.1인치(xlarge screen) OS : Android 3.0 |
안드로이드 마켓에 릴리즈시 하나의 어플리케이션에 두개의 APK파일을 등록할 수 있는 MultipleScreens 기능이 있다.
AndroidManifest.xml 의 스크린사이즈가 다르거나 SDK Version이 다른 두개의 APK파일을 업로드
하여 Publish하면 되는거..
하지만 해상도의 구분이 애매하였다.
열심히 구글링을 해보면...아래값들을 컨트롤하면 된다.
smallScreens = true (normalScreens 보다 작은 사이즈 지원)
normalScreens = true (normalScreens 사이즈 지원)
largeScreens = true (normalScreens 보다 큰 사이즈 지원)
xlargeScreens = true (largeScreens 보다 큰 사이즈 지원)
requiresSmallestWidthDp = 600 (Android 3.2 API Level 13이후부터 지원하는 attribute.
600에 largeScreens = true, xlargeScreens = true를 설정하면 타블렛만
지원되는 어플이 된다.)
<supports-screens android:resizeable=["true"| "false"]
android:smallScreens=["true" | "false"]
android:normalScreens=["true" | "false"]
android:largeScreens=["true" | "false"]
android:xlargeScreens=["true" | "false"]
android:anyDensity=["true" | "false"]
android:requiresSmallestWidthDp="integer"
android:compatibleWidthLimitDp="integer"
android:largestWidthLimitDp="integer"/>
즉.....2.3에선 requiresSmallestWidthDp를 사용할 수 없고, 갤노트와 갤S2는 아래와 같이 구분하여 적용
시키면 마켓 필터링이 가능하다.
*. 갤럭시 S2 <supports-screens android:smallScreens="false" android:normalScreens="true" android:largeScreens="false" android:xlargeScreens="false" android:anyDensity="true" /> |
*. 갤럭시 노트 <supports-screens android:smallScreens="false" android:normalScreens="false" android:largeScreens="true" android:xlargeScreens="false" android:anyDensity="true" /> |
추가로 엄청 중요한 사항이 생겼다. 위와 같이 했을 경우 마켓 릴리즈시 버전코드가 갤럭시 S2가
더 낮아야 한다. 즉!! 갤럭시 S2의 버전코드가 100이라면 갤럭시 노트의 버전코드는 101이 되어야
정상적인 릴리즈가 가능하다. 만약 갤럭시 노트의 버전 코드가 더 낮다면 빨간색 에러줄을
마주치게 된다. 아...이것때문에 엄청 암울했는데...ㅠㅠ
혹 여기서 10.1인치를 필터링 시키려면 안드로이드마켓 등록시 지원등록단말에서 수동
삭제하면...ㅋㅋㅋㅋ된다.
내가 삽질한건??? 내가 원한건 다른 사이즈들은 다빼고 딱 normalScreens만 지원하고 싶었을 뿐인데...
이게 normalScreens = true로 하고, 다른 스크린을 false로 설정해도 normalScreens~xlargeScreens까지
지원된다는거다...
그래서 찾아보다가 아래와 compatible-screens를 찾게되었다. 역기서 screenSize="normal"로 설정하면
마켓상에서 딱!!!normalScreens만 지원된다...
허나...compatible-screens를 적용시키면 지원단말에서 국산단말은 제외되고,
해외향 단말만 지원된다.
젠장...된장...진장...아래처럼 모든 Density에 모든 screenSize를 설정해도 국내향단말은
지원단말에서 제외되어있다...ㅠㅠㅠㅠ
이걸 하나씩 확인해보다...왜 갤노트는 제외되지...왜 갤S2는 제외되지...
그러다 모든걸 적용시켜도 안된다는걸 알고 포기함.
<compatible-screens>
<screen android:screenDensity="xhdpi" android:screenSize="small"/>
<screen android:screenDensity="ldpi" android:screenSize="small"/>
<screen android:screenDensity="mdpi" android:screenSize="small"/>
<screen android:screenDensity="hdpi" android:screenSize="small"/>
<screen android:screenDensity="xhdpi" android:screenSize="normal"/>
<screen android:screenDensity="ldpi" android:screenSize="normal"/>
<screen android:screenDensity="mdpi" android:screenSize="normal"/>
<screen android:screenDensity="hdpi" android:screenSize="normal"/>
<screen android:screenDensity="xhdpi" android:screenSize="xlarge"/>
<screen android:screenDensity="ldpi" android:screenSize="xlarge"/>
<screen android:screenDensity="mdpi" android:screenSize="xlarge"/>
<screen android:screenDensity="hdpi" android:screenSize="xlarge"/>
<screen android:screenDensity="xhdpi" android:screenSize="large"/>
<screen android:screenDensity="ldpi" android:screenSize="large"/>
<screen android:screenDensity="mdpi" android:screenSize="large"/>
<screen android:screenDensity="hdpi" android:screenSize="large"/>
</compatible-screens>
이제 TStore, OlleMarket, OzStore 등록만 남은건가....ㅠㅠ
'안드로이드 > Market' 카테고리의 다른 글
어플리케이션 서명에서 마켓 배포!!! (0) | 2011.02.11 |
---|---|
[개발 Tip] 마켓에서 패키지명에 해당하는 어플 찾도록 StartActivity 시키기 (0) | 2011.02.11 |
Application Update시 버전 정보 보여주기 (0) | 2011.02.11 |
안드로이드 개발 App 단말에 Upload & 배포 & 안드로이드 개발자 등록 (0) | 2011.02.11 |