안드로이드 리소스
안드로이드 리소스
- 리소스는 코드 이외에 프로그램 동작에 필요한 여러 구성요소들을 말한다.
- 예들들어 설정 파일이나, 이미지, 사운드, 데이터, 텍스트, 다국어 드으이 정보들을 말한다.
이름 규칙
- 안드로이드 프로젝트 생성시 기본적으로 생성되는 리소스 파일들이나 파일내에서 사용되는 name, id 값들 이외에 추가되는 리소스들에 대한 이름에 대해 강제되는 규칙은 없다.
- 다만 일반적으로 아래와 같은 규칙에 따라 작성하는 것을 원칙으로 하고있다.]
- 모든 리소스에 무리해서 적용할 필요는 없고 리소스 유형에 따라 what_description, where_description 등 유연하게 적용하되 일관된 규칙에 따라 작성하면 된다.
- [what][where][description]_[size]
- what: 리소스가 무엇인지 의미, ex) activity, fragment…
- where: 어디에서 사용되는지 의미, ex) main, user, settings…
- description: 리소스에 대한 간단한 설명, ex) title, content, profile…
- size: 아이콘이나 이미지등의 경우 크기 표시, 24dp, small…
- 주의할 점은 리소스 이름은 R 클래스의 필드로 바뀌기 때문에 자바 식별자 규칙에 따라 숫자로 시작할 수 없으며 소문자로 작성해야 한다. 즉 a~z, 0~9, ‘_’ 조합으로 작성
Id와 name
- id는 레이아웃 xml 리소스 파일에서 UI 위젯들을 구분하기 위해 사용하고 name의 경우 values 폴더의 리소스 파일에서 해당 리소스들을 구분하기 위한 이름으로 사용한다.
<EditText android:id="@+id/text1" .../> <Button android:id="@+id/btn" .../> <string name="app_name">IntentExam</string>
리소스 폴더
- res 폴더에는 다양한 리소스(Resource) 파일들이 위치한다.
- drawable: 앱에서 사용하는 모든 이미지가 위치하는 폴더
- layout: activity_main.xml 을 비롯해 Activity의 레이아웃 파일이 위치
- mipmap: 프로그램 런처 아이콘이 위치, 해상도에 따라 서로 다른 크기의 이미지가 포함된다. 예를들어 medium(mdpi), high(hdpi), or extra-extra-extra-high(xxxhdpi), ic_launcher.xml 은 모든 dpi에 적용되는 파일이다.
- values: 프로그램 코드에서 직접 작성(하드코딩)하는 문자열, 색상, 크기, 스타일 등을 분리해둔 파일이 위치하는 폴더로 코드 내 문자열 값 등을 직접 사용하는 것에 따른 문제(변경, 다국어 처리) 를 해결하기 위한 방법이다. colors.xml, dimens.xml, strings.xml, styles.xml 이 기본적으로 생성되어 있다.
- strings.xml 작성
<resources> <string name="hello_txt">Hello World App</string> </resources>
- 레이아웃 xml에서 사용
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello_txt" />
- 자바 코드에서 사용
String string = getString(R.string.hello_txt);
레이아웃 파일
- strings.xml 작성
- 기본적으로 안드로이드에서는 화면 구성을 xml 파일로 관리 한다.
- 이 방법은 프로그램의 코드와 화면을 분리시켜 화면이 변경될 경우에도 코드에 미치는 영향을 최소화 하기 위한 것으로 IOS 역시 비슷한 방법을 사용한다.
Android manifest 파일
- 안드로이드 프로그램은 일반적인 프로그램과 같이 main() 블럭이 없다.
개발자가 만드는 프로그램 코드는 안드로이드 시스템에 의해 관리되며 라이프사이클을 가지게 된다. - AndoirdManifest.xml 파일은 개발자가 만든 프로그램에 대한 정보 (Android 빌드 도구, Android 운영 체제 및 Google Play에 앱에 관한 필수 정보) 를 안드로이드 시스템에 전달하는 역할을 담당한다.
- Activity를 비롯해 앱을 구성하는 각종 컴포넌트 및 관련 정보들은 반드시 이곳에 등록되어야 한다.
- 안드로이드 스튜디오를 사용하게 되면 관련된 컴포넌트등을 생성할 때 기본적인 정보가 등록되게 되며 필요시 직접 수정할 수 있다.
- 앱의 기본적은 정보 이외에도 많은 설정이 포함되며 대표적인것은 아래와 같다.
- 앱에서 요구하는 모든 사용자 권한(예: 인터넷 엑세스, 사용자의 연락처에 대한 읽기 엑세스)을 식별
- 어느 API를 사용하는지를 근거로 앱에서 요구하는 최소 API 레벨을 선언
- 앱에서 사용하거나 요구하는 하드웨어 및 소프트웨어 기능(예: 카메라, 블루투스 서비스, 멀티터치 화면)을 선언
- 앱과 연결된 API 라이브러리(Android 프레임워크 API제외)(예: Google Maps 라이브러리)를 선언
Comments