Android 리소스

이 문서에서는 Xamarin.Android의 Android 리소스 개념을 소개하고 이를 사용하는 방법을 설명합니다. Android 애플리케이션에서 리소스를 사용하여 애플리케이션 지역화를 지원하고 다양한 화면 크기 및 밀도를 포함한 여러 디바이스를 지원하는 방법을 설명합니다.

개요

Android 애플리케이션은 소스 코드만 사용하는 경우는 거의 없습니다. 애플리케이션을 구성하는 다른 많은 파일(비디오, 이미지, 글꼴 및 오디오 파일)이 있습니다. 전체적으로 이러한 비 소스 코드 파일은 리소스라고 하며 빌드 프로세스 중에(소스 코드와 함께) 컴파일되고 디바이스에 배포 및 설치를 위한 APK로 패키지됩니다.

Packaging diagram

리소스는 Android 애플리케이션에 다음과 같은 몇 가지 이점을 제공합니다.

  • 코드 분리 – 소스 코드를 이미지, 문자열, 메뉴, 애니메이션, 색 등과 구분합니다. 이러한 리소스는 지역화할 때 상당히 도움이 될 수 있습니다.

  • 여러 디바이스 대상 – 코드 변경 없이 다양한 디바이스 구성을 더 간단하게 지원할 수 있습니다.

  • 컴파일 시간 검사 – 리소스는 정적이며 애플리케이션으로 컴파일됩니다. 이렇게 하면 찾기가 더 어렵고 수정 비용이 많이 드는 런타임과 달리 실수를 쉽게 파악하고 수정할 수 있는 컴파일 시간에 리소스를 검사 수 있습니다.

새 Xamarin.Android 프로젝트가 시작되면 리소스라는 특수 디렉터리가 일부 하위 디렉터리와 함께 만들어집니다.

Resources folder and contents

위의 이미지에서 애플리케이션 리소스는 해당 유형에 따라 이러한 하위 디렉터리로 구성됩니다. 이미지는 그리기 가능한 디렉터리로 이동하고 보기는 레이아웃 하위 디렉터리로 이동합니다.

Xamarin.Android 애플리케이션 에서 이러한 리소스에 액세스하는 방법에는 프로그래밍 방식으로 코드로, 특수 XML 구문을 사용하여 XML에서 선언적으로 액세스하는 두 가지 방법이 있습니다.

이러한 리소스를 기본 리소스라고 하며 보다 구체적인 일치 항목을 지정하지 않는 한 모든 디바이스에서 사용됩니다. 또한 모든 유형의 리소스에는 필요에 따라 Android에서 특정 디바이스를 대상으로 하는 데 사용할 수 있는 대체 리소스가 있을 수 있습니다. 예를 들어 사용자의 로캘, 화면 크기를 대상으로 하거나 디바이스가 세로에서 가로로 90도 회전하는 경우 리소스를 제공할 수 있습니다. 이러한 각 경우에서 Android는 개발자의 추가 코딩 노력 없이 애플리케이션에서 사용할 리소스를 로드합니다.

대체 리소스는 지정된 유형의 리소스를 보유하는 디렉터리의 끝에 한정자라고 하는 짧은 문자열을 추가하여 지정됩니다.

예를 들어 resources/drawable-de 는 독일 로캘로 설정된 디바이스의 이미지를 지정하고 , resources/drawable-fr 은 프랑스어 로캘로 설정된 디바이스에 대한 이미지를 보유합니다. 대체 리소스를 제공하는 예제는 디바이스 변경의 로캘만 사용하여 동일한 애플리케이션이 실행되는 아래 이미지에서 확인할 수 있습니다.

Example screens for different locales

이 문서에서는 리소스 사용을 포괄적으로 살펴보고 다음 항목을 다룹니다.

  • Android Resource Basics – 프로그래밍 방식으로 선언적으로 기본 리소스를 사용하여 애플리케이션에 이미지 및 글꼴과 같은 리소스 유형을 추가합니다.

  • 디바이스별 구성 – 애플리케이션에서 다양한 화면 해상도 및 밀도 지원

  • 지역화 – 리소스를 사용하여 애플리케이션을 사용할 수 있는 여러 지역을 지원합니다.