안드로이드 시스템은 자원 디렉토리의 이름을 보고 특정 local과 특정 device 구성에 가장 적합한 디렉토리를 선택해서
그 디렉토리 안의 자원들을 응용프로그램에 제공한다.
기본적인 자원들은 /res/values나 /res/drawable과 같은 자원 형식 이름으로만 된 디렉토리에 저장된다.
그러나 현지화나 기기 구성 조건에 따른 자원들을 담을 디렉토리에는 기본 이름 뒤에 특정한 한정사를 붙인다.
■
제약조건
- 한 디렉토리에 여러 개의 한정사들을 적용할 수 있는데, 그런 경우에는 대시(
- )로 한정사들을 연결한다.
- 한 디렉토리에 대해 같은 범주의 한정사들을 여러개 적용할 수 없다.
- 지역 부호를 제외할 때 한정사는 영문 소문자와 숫자로만 이루어 진다.
■
안드로이드가 요구하는 자원 디렉토리 한정사들
디렉토리 한정사 범주
|
허용되는 값
|
비고
|
언어
반드시 첫 한정사 이어야 함.
ex)/res/values-en/
|
en, fr, es, zh, ja, ko, de, fi
|
ISO 639-1 두 글자 부호(옆 칸의 예는 차례로 영어, 프랑스어, 스페인어, 중국어, 일본어, 한국어, 독일어, 핀란드어이나, 다른 것들도 가능하다)
|
지역
언어보다 앞에 나오면 안 됨.
ex)/res/values-en-rUS/
|
rUS, rGB, rFR, rES, rMX, rCN, rJP, rKR, rDE, rFI |
소문자 'r' 다음에 대문자 ISO3166-1-alpha-2 지역 부호가 붙은 형태. (옆 칸의 예는 차례로 미국, 영국, 프랑스, 스페인, 멕시코, 중국, 일본, 남한, 독일, 핀란드이나 다른 것들도 가능하다)
|
화면방향
지역보다 앞에 나오면 안 됨.
ex)/res/drawable-port/
|
port, land, square
|
세로모드, 가로모드, 정사각형 화면
|
화면 픽셀 밀도
화면 방향보다 앞에 나오면 안 됨.
ex)/res/drawable-port-92dpi/ |
92dpi, 108dpi
|
가능한 값들은 기기에 따라 다를 수 있음
|
터치 스크린 종류
화면 픽셀 밀도보다 앞에 나오면 안 됨.
ex)/res/values-port-notouch/
|
notouch, stylus, finger
|
터치스크린 없음, 스타일러스 전용, 손가락 터치스크린
|
키보드 모드
터치스크린 종류보다 앞에 나오면 안 됨.
ex)/res/drawable-keyshidden/
|
keysexposed, keyshidden
|
사용자에게 키보드 제공됨, 키보드 제공되지 않음
|
기본 텍스트 입력 방법
키보드 모드보다 앞에 나오면 안 됨.
ex)/res/values-port-notouch-12key/
|
nokeys, qwerty, 12key
|
키보드 없음(터치스크린 입력만), 완전한 QWERTY 키보드, 숫자키 패드
|
기본 비 터치스크린 내비게이션 방법
기본 텍스트 입력 방법보다 앞에 나오면 안 됨.
ex)/res/values-notouch-wheel/
|
nonav, dpad, trackball, whell
|
4키 방향 패드, 트랙볼, 스크롤 휠
|
화면 크기
항상 제일 마지막 한정사
ex)/res/drawables-en-port-640x480/
|
320x240, 640x480
|
가장 큰 크기를 제일 처음 지정해야 함
|
■ 사용자 커스텀 한정사는 허용되지 않는다.
■
유효한 자원 디렉토리 이름의 예
/res/values-en-rUS-port-finger
/res/drawables-en-rUS-land-640x480
/res/values-en-qwerty
■
유효하지 않은 자원 디렉토리 이름의 예
/res/values-en-rUS-rGB <- 같은 범주의 한정사가 두개(rUS, rGB) 쓰인 문제
/res/values-en-rUS-port-FINGER-320x240 <- 지역 부회 이외의 한정사에 대문자가 쓰인 문제
/res/values-en-rUS-port-finger-320x240-custom <- custom이 문제, 현재 커스텀 한정사는 지원하지 않음
/res/drawables-rUS-en <- 한정사들의 순서가 잘못 되었다. 지역 부호 한정사(rUS)는 반드시 언어 한정사(en)보다 뒤에 와야 함.