ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android] 현지화와 기기 구성을 고려한 자원 조직화
    개발노하우/others. 2010. 4. 12. 13:35
    안드로이드 시스템은 자원 디렉토리의 이름을 보고 특정 local과 특정 device 구성에 가장 적합한 디렉토리를 선택해서
    그 디렉토리 안의 자원들을 응용프로그램에 제공한다.

    기본적인 자원들은 /res/values나 /res/drawable과 같은 자원 형식 이름으로만 된 디렉토리에 저장된다.
    그러나 현지화나 기기 구성 조건에 따른 자원들을 담을 디렉토리에는 기본 이름 뒤에 특정한 한정사를 붙인다.

    제약조건
    - 한 디렉토리에 여러 개의 한정사들을 적용할 수 있는데, 그런 경우에는 대시( - )로 한정사들을 연결한다.
    - 한 디렉토리에 대해 같은 범주의 한정사들을 여러개 적용할 수 없다.
    - 지역 부호를 제외할 때 한정사는 영문 소문자와 숫자로만 이루어 진다.

    안드로이드가 요구하는 자원 디렉토리 한정사들[각주:1]

    디렉토리 한정사 범주
    허용되는 값
    비고
    언어
    반드시 첫 한정사 이어야 함.
    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)보다 뒤에 와야 함.


    1. Android SDK 1.5 기준. [본문으로]
Designed by Tistory.