안드로이드 리소스

2 minute read

안드로이드 리소스

  • 리소스는 코드 이외에 프로그램 동작에 필요한 여러 구성요소들을 말한다.
  • 예들들어 설정 파일이나, 이미지, 사운드, 데이터, 텍스트, 다국어 드으이 정보들을 말한다.

이름 규칙

  1. 안드로이드 프로젝트 생성시 기본적으로 생성되는 리소스 파일들이나 파일내에서 사용되는 name, id 값들 이외에 추가되는 리소스들에 대한 이름에 대해 강제되는 규칙은 없다.
  2. 다만 일반적으로 아래와 같은 규칙에 따라 작성하는 것을 원칙으로 하고있다.]
    • 모든 리소스에 무리해서 적용할 필요는 없고 리소스 유형에 따라 what_description, where_description 등 유연하게 적용하되 일관된 규칙에 따라 작성하면 된다.
    • [what][where][description]_[size]
      1. what: 리소스가 무엇인지 의미, ex) activity, fragment…
      2. where: 어디에서 사용되는지 의미, ex) main, user, settings…
      3. description: 리소스에 대한 간단한 설명, ex) title, content, profile…
      4. 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) 파일들이 위치한다.
    1. drawable: 앱에서 사용하는 모든 이미지가 위치하는 폴더
    2. layout: activity_main.xml 을 비롯해 Activity의 레이아웃 파일이 위치
    3. mipmap: 프로그램 런처 아이콘이 위치, 해상도에 따라 서로 다른 크기의 이미지가 포함된다. 예를들어 medium(mdpi), high(hdpi), or extra-extra-extra-high(xxxhdpi), ic_launcher.xml 은 모든 dpi에 적용되는 파일이다.
    4. 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);
        

        레이아웃 파일

  • 기본적으로 안드로이드에서는 화면 구성을 xml 파일로 관리 한다.
  • 이 방법은 프로그램의 코드와 화면을 분리시켜 화면이 변경될 경우에도 코드에 미치는 영향을 최소화 하기 위한 것으로 IOS 역시 비슷한 방법을 사용한다.

Android manifest 파일

  1. 안드로이드 프로그램은 일반적인 프로그램과 같이 main() 블럭이 없다.
    개발자가 만드는 프로그램 코드는 안드로이드 시스템에 의해 관리되며 라이프사이클을 가지게 된다.
  2. AndoirdManifest.xml 파일은 개발자가 만든 프로그램에 대한 정보 (Android 빌드 도구, Android 운영 체제 및 Google Play에 앱에 관한 필수 정보) 를 안드로이드 시스템에 전달하는 역할을 담당한다.
  3. Activity를 비롯해 앱을 구성하는 각종 컴포넌트 및 관련 정보들은 반드시 이곳에 등록되어야 한다.
  4. 안드로이드 스튜디오를 사용하게 되면 관련된 컴포넌트등을 생성할 때 기본적인 정보가 등록되게 되며 필요시 직접 수정할 수 있다.
  5. 앱의 기본적은 정보 이외에도 많은 설정이 포함되며 대표적인것은 아래와 같다.
    • 앱에서 요구하는 모든 사용자 권한(예: 인터넷 엑세스, 사용자의 연락처에 대한 읽기 엑세스)을 식별
    • 어느 API를 사용하는지를 근거로 앱에서 요구하는 최소 API 레벨을 선언
    • 앱에서 사용하거나 요구하는 하드웨어 및 소프트웨어 기능(예: 카메라, 블루투스 서비스, 멀티터치 화면)을 선언
    • 앱과 연결된 API 라이브러리(Android 프레임워크 API제외)(예: Google Maps 라이브러리)를 선언
-->

Categories:

Updated:

Comments