본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android/안드로이드] pre-scaling & auto-scaling & compatible mode

by 돼지왕 왕돼지 2012. 10. 6.
반응형



pre-scaling

- 안드로이드에서 view 를 생성할 때, resource 가 연결되어 있다면 해당 resolution ( or density ) 에 맞는 resource folder 를 access 해서 resource 를 가져오게 됩니다. 이 때 현재 단말에 딱 맞는 resource folder 가 없다면 alternative 선택을 하게 되는데 이 경우에는 scale 이 필요하게 되죠. 이렇게 best match 가 아닌 alternative match 의 경우 resource 를 scale 하는 것을 pre-scaling 이라 합니다.




auto-scaling

- 이 녀석은 pre-scaling 의 옵션을 껐을 때 작동하는 녀석입니다. pre-scaling 과 다르게 view 각각에 대한 resource 를 scale 하는 것이 아니라, 단말에 뻥을 쳐서 view 전체를 그린 후, 전체화면을 스케일을 하는 것입니다. 예를 들어 실제 단말은 480x800 mdpi 인데, 해당 앱은 320x400 ldpi 의 resource 들만 가지고 있는 경우가 있을 수 있습니다. 이 경우에 ldpi 에 있는 resource 들을 scale 하여 component 로 그리는 것이 아니라, 단말한테, "너는 지금 320x400 ldpi 단말이야. 그러니깐 그 사이즈로 그리자~" 라고 하여 해당 사이즈로 그리게 합니다. 이 때 그리는 것은 머리속으로 그리는 것으로 실제 디스플레이에 보여줄 때는 320x400 ldpi 기준으로 그린 그림을 scale 해서 보여줍니다. 이걸 drawing time 에 scale한다고 표현을 하더군요. 이런 방식을 auto-scaling 이라 합니다. 이 방식은 어떤 결과를 초래할 지 예측하기가 어려워 비추되고 있는 방식입니다. 성능적으로는 이득이 있다고는 하지만.. 안드로이드 3.0 Honey Comb 부터는 Hardware acceleration 이 도입되어 성능 이득도 거의 차이가 없다고 하네요.




compatible mode

- 이 녀석은 주로 폰용 앱을 타블렛에서 실행할 때 발생합니다. large screen 을 support 하지 않는 경우에 발생하는데, 원래 폰에서 작동하는 screen 사이즈로 타블렛에서 보여줍니다. 그래서 많은 테두리부는 검은색으로 나오고, 해당 앱은 센터에서 조그맣게 실행되는 형태인데, 최악의 case 로 볼 수 있겠습니다.



결론적으로 안드로이드의 scale 관련된 용어와 옵션은 위와 같이 크게 3개로 구분할 수 있지만, 가장 권장되는 방식은 pre-scaling 방식입니다.  pre-scaling 을 적용하는 앱을 만들기 위해서는 아래 글이 많이 도움이 될 것 같군요.

 
 
도움이 되셨다면 손가락 꾸욱~ ( 로그인 필요 x )






반응형

댓글