Notice
Recent Posts
Recent Comments
Link
관리 메뉴

설.현.아빠

WVGA에선 Min SDK Version을 지정합시다! 본문

안드로이드/Screen & Resolution

WVGA에선 Min SDK Version을 지정합시다!

설.현.아빠 2011. 2. 11. 11:10



가끔 이해 못할 동작도 많네요...

 

 

[intro]

 

이번에는 무심코 놓치기 쉬운 TiP 하나를 이야기 하고자 합니다.

 

누구나 꼭 한번은 보는 화면

 

 

새로운 프로젝트를 만들때 Build Target을 지정하고 Properties를 채워 나갑니다.

이 중에서 꼭 채워 넣지 않아도 되는 것들이 있죠.

Min SDK Version 같은 경우도 그런 경우입니다.

 

 

[Is Min SDK Version really needed?]

 

새로운 프로젝트를 생성 할 때 Min SDK Version을 그냥 뛰어 넘으시는 분들 중에는

"꼭 필요한가?" 하는 질문을 자신에게 던지며 넘어가시는 분들도 계실 겁니다.

물론 꼭 쓰지 않아도 크게 문제 될 것은 없습니다.

하지만 API Level 4 부터는 이야기가 완전히 달라지게 됩니다.

 

 

[API Level 4 And WVGA]

 

API Level 3 (Cupcake)에서 API Level 4 (Donut)에는 아주 커다란 변화가 있었습니다.

그 중 하나가 바로 WVGA 해상도 지원이죠.

그래서 API Level 4 이상을 타겟으로 잡고 프로젝트를 생성하면

res/drawable 폴더가 기본적으로 3개로 나뉘어져 만들어집니다.

(drawable-hdpi, drawable-mdpi, drawable-ldpi)

 

그래서 WVGA의 고해상도 급에선 자동으로 drawable-hdpi의 리소스가 불려지고

HVGA의 중급 해상도에선 drawable-mdpi의 리소스가 자동으로 불려지게 되어있습니다.

하지만 디바이스가 WVGA의 해상도를 가지고 있다고

항상 WVGA의 해상도로 실행이 될까요?

 

 

[Uses SDK Version]

 

한가지 예제를 만들어 보았습니다.  

 

그냥 아무 생각 없이 프로젝트를 만들어서 현재 윈도우의 크기와 아이콘을 표시해 봤습니다.

그리고 WVGA의 해상도를 가지는 에뮬레이터를 실행,

결과는 아래와 같습니다.

 

 

읭? 이게 뭡니까...

 

 

분명 WVGA 스크린으로 실행을 했는데 화면에 찍히는건

HVGA의 해상도를 가진 윈도우와 뭉개진 아이콘이군요...

데체 이게 어떻게 된 일일까요?

 

그 이유는 바로 '아무 생각 없이' 프로젝트를 만드는 도중

Min SDK Version을 지정해 주지 않았기 때문입니다.

 

이제 AndroidManifest.xml 파일을 열어서 Min SDK Version을 설정해 봅시다.

Manifest > Uses Sdk > Min SDK version에 원하는 숫자를 써 넣읍시다.

저의 경우 API Level 4로 만들었기 때문에 4로 넣었습니다.

그리고 다시 실행해 봅시다!

 

 

그래! 바로 이거야!

 

 

그렇습니다. WVGA에 drawable-hdpi 아이콘이 맞습니다. 선명하군요~

어플리케이션의 퀄리티가 1.5배, 체감상으로는 100배 정도 더 좋아졌습니다.

숫자 하나 넣었을 뿐인데...

 

 

[Uses SDK]

 

AndroidManifest.xml에서 설정 할 수 있는 값은 3개입니다.

Min SDK Version, Target SDK Version, Max SDK Version

 

만약 Min SDK Version을 설정하지 않는다면 기본값은 "1"입니다.

그렇기 때문에 WVGA를 지원하지 않는, 즉 HVGA로 윈도우를 구성 할 수 밖에 없는 것이죠.

 

만약 이 중에서 Min과 Target 둘 중에 하나라도 "4"이상으로 설정이 되어 있으면

WVGA해상도를 표현 할 수 있습니다.

하지만 Max의 값을 "4"로 설정 해 놓는것은 아무런 영향을 미치지 않습니다.

그리고 Max를 쓰는 것은 추천하지 않는다고 하네요...

 

결국 프로젝트 만들 때 그냥 Min SDK Version을 넣어서 만들면 속편하단 이야기죠...

 

 

[Outro]

 

어플리케이션의 해상도가 변할 수 있다는 것은 매우 중요한 사실입니다.

생각지도 못한 퀄리티의 저하가 일어 날 수 있다는 말이죠.

 

한가지 실례를 들어보겠습니다.

OpenGL의 해상도를 HVGA에서 WVGA로 업그레이드 해서 작업을 했는데도

퀄리티의 향상이 전혀 일어나지 않았었던 적이 있었습니다.

그 이유가 뭔가 잘 살펴보다가,

우연하게 Min SDK Version의 설정 여부에 따라서 윈도우의 해상도가 변한다는 것을 알았습니다.

윈도우를 WVGA로 적용하고 나니

이제서야 드디어 아주 높은 퀄리티의 OpenGL렌더링을 감상(?) 할 수 있게 되었습니다.

 

혹시 현재 만들고 있는 어플리케이션이 WVGA 디바이스에서 흐릿흐릿하게 보인다면,

한번 체크해 보시기 바랍니다!

 

http://blog.vizpei.kr/105136597

Comments