728x90


프롤로그 

안드로이드는 특유의 파편화 문제로 여러 폰을 지원하다 보면 여러 종류의 레이아웃이나 리소스를 만들어야 하는 경우가 있다.

그런데 여기서 또 문제가, 안드로이드는 OS버젼별로 해당 폴더의 인식 순서가 다르다는데 있다.


덕분에 이걸 모르면 개 삽질을 미친듯이 해야 하고 (경험담ㅋㅋㅋ)

결국 해상도별 픽셀 폴더를 만드는 짓(!)을 해서 훗날 유지보수를 어렵게 만들게 된다.

그리고는 "어쩔 수 없다" 라는 말을 할 수 밖에 없는 상황을 발생시킨다. (이게 무슨 멍멍이 같은 상황인가ㅋㅋㅋ)


안드로이드 OS별 폴더 인식 순서는 간단히 아래와 같다.



OS 4.x 의 Layout 인식 순서

자신의 sw_dp > 낮은 sw_dp > 자신의 w_dp > 낮은 w_dp > 자신의 dpi > 존재하는 dpi 폴더 중 높은 dpi > 낮은 dpi > 자신의 해상도 > 낮은 해상도 > layout


OS 3.x 의 Layout 인식 순서 

자신의 sw_dp > 낮은 sw_dp > 자신의 w_dp > 낮은 w_dp > 자신의 dpi > 자신의 해상도 > 낮은 해상도 > layout > 높은 dpi


OS 2.x 의 Layout 인식 순서 

자신의 dpi > 높은 dpi > 낮은 dpi > 자신의 해상도 > layout



그래서, 몇가지 폰의 Layout 인식 순서를 예로 들면 다음과 같다.



갤럭시S3 (OS : 4.x, 해상도 : 720 X 1280)

layout-sw360dp
layout-sw320dp
layout-w360dp
layout-w320dp
layout-xhdpi
layout-hdpi
layout-mdpi
layout-1280x720
layout-960x540
layout-800x480
layout-480x320
layout


옵티머스 2X (OS : 4.x, 해상도 : 480 X 800)

layout-sw320dp
layout-w320dp
layout-hdpi
layout-xhdpi
layout-mdpi
layout-800x480
layout-480x320
layout


갤럭시탭 (OS : 3.2, 해상도 : 1280 X 800)

layout-sw400dp
layout-sw384dp
layout-sw360dp
layout-sw320dp
layout-w400dp
layout-w384dp
layout-w360dp
layout-w320dp
layout-mdpi
layout-1024x768
layout-960x540
layout-800x480
layout-480x320
layout
layout-hdpi
layout-xhdpi


옵티머스 빅 (OS : 2.3, 해상도 : 480 X 800)

layout-hdpi
layout-xhdpi
layout-mdpi
layout-800x480
layout


옵티머스 원 (OS : 2.2, 해상도 : 320 X 480)

layout-mdpi
layout-480x320
layout-hdpi
layout-xhdpi
layout


728x90

+ Recent posts