본문 바로가기

프로그래밍언어/Android Programming

안드로이드 자원 관리


* 자원이란 ?

응용프로그램은 기능성과 자원이라는 두 부분으로 구성된다.
기능성(functionality)-응용프로그램의 행동을 결정하는 코드

자원(resource)-텍스트 문자열, 이미지, 아이콘, 오디오, 동영상 등 응용프로그램이 사용하는 자산(asset)을 말한다.

*
안드로이드 자원의 저장 위치와 저장 방식

자원 파일들은 Java클래스 파일들과는 개별적으로 저장된다. 일반적인 종류의 자원들은 대부분 XML 파일 안에 저장하지만, 이미지 파일 등의 원본 자료 파일들은 그 자체로 저장 할 수도 있다.

*
자원 디렉터리 계통구조

모든 자원은 프로젝트 /res 디렉터리 안의 하위 디렉터리들에 배치된다. 하위 디렉터리 이름은 소문자로만 구성된다. 하위 디렉터리들은 자원의 형식을 나타낸다. , 같은 종류의 자원들은 같은 하위 디렉터리에 저장된다.

자원 하위 디렉터리

용도

/res/drawable/

그래픽 자원들

/res/layout/

사용자 인터페이스 자원들, 위젯들

/res/values/

문자열, 색상값 같은 단순 자료들


*
자원의 형식

모든 자원 파일은 이름이 영문 소문자와 숫자, 밑줄로만 이루어져야한다.
[
안드로이드 SDK가 지원하는 자원들의 형식과 저장 위치]

 

자원 형식

필수 디렉터리

파일 이름

핵심 XML 요소 이름

문자열

/res/values/

strings.xml (권장)

<string>

그래픽

/res/drawable/

png,jpg,gif,xml 확장명

그래픽파일, xml파일

레이아웃 파일

/res/layout/

파일이름.xml

레이아웃 요소이어야함.

 

* 코드에서 자원에 접근하기

R.java
파일에 정의되어 있는 클래스 R과 그 하위 클래스들을 이용한다.

R.string.hello

이 변수가 실제로 hello라는 이름의 문자열 자원의 실제 문자열을 담고 있는 것은 아니고, 해당 자원의 값을 얻기 위한 식별자 역할을 한다.

String myString = getResources().getString(R.string.hello);

이 코드는 hello라는 이름의 문자열 자원의 실제 문자열을 가져오는 코드이다.