본문 바로가기

프로그래밍 기초/Android

[Android]모듈의 구성요소와 res

 모듈의 구성요소

안드로이드는 프로젝트하나당 앱 하나가 아니라 모듈 하나당 앱 하나를 만들 수 있다.

step01layout이라는 모듈을 만들었다.

모듈은 mainfests,java,res로 구성되어있다.

mainfests : 설정 정보가 있는곳

 

java : 코딩하는 곳(java,kotlin등으로 가능)

 

res :리소스를 작성하는 곳(하나의 앱을 만드는 데 여러개의 리소스가 필요하다. img, 효과음,레이아웃, 문자열 등)

 


res

문자열을 리소스로 관리하는 이유

res는 리소스를 작성하는 곳이고 img, 효과음,레이아웃, 문자열,id 등이 리소스에 해당된다.

여기서 문자열을 리소스로 관리하는 이유는 예를들어 설명하겠다.

국가를 무엇으로 선택하느냐에따라서 저장, save,  場 등으로 나온다. 리소스에 각 나라별로 문자열을 저장해 놓고 리소스를 참조해서 레이아웃을 쓰도록 하면 국가를 무엇으로 선택하느냐에 따라 언어가 노출되게 할 수가 있다.

 

res사용방법

안드로이드는 res의 모든 리소스에 일련번호(16진수로 정수로 이루어짐)를 부여한다. 특정 리소스를 사용하려면 일련번호를 알아야한다.  16진수 정수값은 다음과 같은 형태로class R에 저장되어있다.

class R {
 static class layout{
     static final int activity_main =0b35f5456~~~
  }
}

 

MainActivity에서의 사용

java의 MainActivity에서 다음과 같이 사용할 수 있다.  R.layout.activity_main (R.res폴더명.참조할파일)

이곳은 Mainactivity가 실행될 때 한번 호출된다.

onCreate라는 메소드는 화면구성을 먼저 하고 어떤 이벤트가 일어났을때 어떤 동작을 할 지 처리한다. 

 

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

여기서 setContentView라는 메소드는 (res/layout/activity_main.xml )문서를 전개(해석)해서 화면을 구성한다. xml문서에있는 UI객체(View 객체)가 각각생성된다. 

아래는 res-layout의 acitivity_main.xml의 text내용이다. ConstraintLayout,TextView라는 두개의 객체가 만들어질 예정이라는 의미이다. 아래의 xml문서는 java코드로 변환되어 사용된다.

 

 

res안에서 사용

res안에서 사용할 때는 다음과 같은 형태로 사용한다.

@layout.activity_main    (@res폴더명.참조할파일)