이 문서에서는 앱 리소스에 대해서 간단히 다루고 각각 세세하게는 다른 문서에서 다룸.
주의 : 리소스 파일을 res/ 디렉토리에 직접 저장하면 컴파일러 오류가 발생한다.
구성한정자 값설명
구성 | 한정자 | 값설명 |
MCC 및 NCC | mcc310 mcc310-mnc004 |
이동통신 국가 코드(MCC)에 선택적으로 이동통신 네트워크 코드(MNC)가 이어지는 형태로, 기기의 SIM 카드에서 가져온다. |
언어 및 지역 | en en-rUS b+en+US |
앞 두 글자는 언어의 2글자코드이고 뒤의 두 글자는 지역코드의 2글자이다. 지역코드 앞에는 구분을 위해 r이 붙는다. 지역코드만을 지정할 수는 없다. |
레이아웃 방향 | ldrtl ldltr |
ldrtl는 "오른쪽에서 왼쪽 방향 레이아웃"을 나타낸다. ldltr는 "왼쪽에서 오른쪽 방향 레이아웃"을 나타내며 기본값이다. supportsRtl=true, targetSdkVersion >= 17 이상으로 설정되어있어야 한다. |
smallestWidth | sw<N>dp | 기기의 smallestWidth는 해당 화면의 이용 가능한 높이와 너비의 가장 짧은 치수를 말한다. 이 값으로 태블릿인지 폰인지 여부를 가늠할 수 있다. smallestWidth 한정자를 여러 개 사용하는 앱의 경우 시스템은 smallestWidth에 가장 가깝지만 이를 초과하지 않는 값을 사용한다. |
이용 가능한 너비 | w<N>dp | 리소스를 사용해야 하는 dp 단위에서 최소 이용 가능한 화면 너비를 지정합니다. 대개 이 방법은 다중 창 레이아웃의 사용 여부를 결정할 때 유용합니다 |
이용 가능한 높이 | h<N>dp | 리소스가 사용되어야 하는 최소한의 사용 가능한 화면 높이를 "dp" 단위로 나타냅니다. 대개 이 방법은 다중 창 레이아웃의 사용 여부를 결정할 때 유용합니다 |
화면크기 | small normal large xlarge |
모든 리소스가 현재 화면 크기보다 큰 화면 크기의 한정자만을 갖는 경우 앱이 런타임에 중지될 수 있다. |
넓은 색 공간 | widecg nowidecg |
widecg: Display P3, AdobeRGB 등과 같은 넓은 색 공간으로 표시. nowidecg: sRGB와 같은 좁은 색 공간으로 표시합니다 |
구성 | 한정자 | 값설명 |
HDR(High Dynamic Range) | highhdr lowdr |
highhdr: 높은 동적 범위로 표시합니다. lowdr: 낮은/표준 동적 범위로 표시합니다. |
화면방향 | port land |
port : 세로모드 land : 가로모드 |
야간모드 | night nonight |
night : 야간 nonight : 주간 |
화면픽셀밀도 | ldpi mdpi... |
nodpi : 기기 밀도에 일치하도록 크기를 조정하지 않을 비트맵 리소스에 사용한다. anydpi : 모든 화면 밀도와 일치하며 다른 한정자보다 우선한다. 벡터 드로어블에 유용하다. nnndpi : 표준이 아닌 밀도를 표현한다. 대부분의 경우 사용하면 안된다. |
터치스크린 유형 | notouch finger |
notouch : 기기에 터치스크린이 없음 finger : 기기에 터치 스크린이 있으며 이를 사용자의 손가락을 사용한 방향 지시 상호작용을 통해 쓰도록 되어 있다. |
키보드 가용성 | keysexposed keyshidden keyssoft | keysexposed :기기에서 키보드를 사용할 수 있다. 소프트웨어 키보드가 활성화되어 있으며 하드웨어 키보드는 없거나 유저에게 보여지고 있지 않다. 소프트웨어 키보드가 제공되고 있지않다면 하드웨어 키보드가 사용자에게 보여지고 있다. keyshidden : 기기에서 하드웨어 키보드를 사용할 수 있지만 숨겨져 있고 소프트웨어 키보드는 활성화되어 있지 않다. keyssoft : 기기에 활성화된 소프트웨어 키보드가 있음. |
기본 텍스트 입력 방법 | nokeys qwerty 12key |
nokeys : 기기에 하드웨어 키가 없음. qwerty : 기기에 하드웨어 쿼티 키보드가 있다. 12key : 기기에 하드웨어 12키 키보드가 있다. |
<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="icon">@drawable/icon_ca</drawable>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello</string>
<string name="hi">@string/hello</string>
</resources>
drawable/
drawable-en/
drawable-fr-rCA/
drawable-en-port/
drawable-en-notouch-12key/
drawable-port-ldpi/
drawable-port-notouch-12key/
위와 같은 리소스가 제공되고 있을 때로 예를 들면,
1. 기기 구성과 충돌하는 리소스 파일을 제거한다. drawable-fr-rCA/는 en-GB과 충돌하므로 제거된다.
drawable/
drawable-en/drawable-fr-rCA/drawable-en-port/
drawable-en-notouch-12key/
drawable-port-ldpi/
drawable-port-notouch-12key/
2. 대체리소스제공 상단 표에서 우선순위가 가장 높은 한정자를 찾는다. (MCC부터 아래로 내려오는 순서)
3. 이 한정자를 포함하지 않는 리소스 디렉토리는 제외합니다. 이 예시에서는 시스템이 언어 한정자를 포함하지 않는 디렉토리를 모두 제거합니다.
drawable/drawable-en/drawable-fr-rCA/drawable-en-port/
drawable-en-notouch-12key/drawable-port-ldpi/drawable-port-notouch-12key/
4. 위 작업을 디렉토리가 하나만 남을 때 까지 반복한다. 결과는 drawabe-en-port가 남는다.
안드로이드 문서 정리 - 앱 현지화 (0) | 2021.05.13 |
---|---|
안드로이드 문서 정리 - 앱 기본 요소 (2) | 2021.03.30 |
댓글 영역