오늘은 전체적인 Android 어플의 생애 주기와 프로젝트 구조에 대해서 살펴보도록 하겠습니다.

먼저 프로젝트를 살펴보죠.

src 에는 일반적인 자바 프로젝트와 마찬가지로 사용자가 추가한 파일(class)들을 가지고 있습니다.




gen 에는 [Generated Java Files] 라고 되어 있는데, 사용자가 만드는 것이 아니라 자동적으로 생성되는 파일입니다. R.java 라고 되어 있는데, 이때 R 이 Resource 의 R이 아닌가 그냥 추측해 봅니다. 아닐수도 있습니다. 제 생각입니다 ^^;



R.java 파일을 열어봅시다.


package unD3R.Android.Test;

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int icon=0x7f020000;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class string {
        public static final int app_name=0x7f040001;
        public static final int hello=0x7f040000;
    }
} 




final 로 선언된 R class 아래에 inner class 형태로 다시 크래스들이 있습니다. 아마도 type 이름에 따른 class 같네요. 그 안에 멤버로 값이 있는데, 모두 int type 입니다. MFC 에서 리소스 ID 처럼, 그런 역할을 하는 것으로 보입니다.


다음은 res 를 살펴봅시다.
딱 봐도 resource 들이네요.
Hight/Low/Middle 의 dpi 별로 아이콘들이 있습니다.
Layout 은 말 그대로 화면 구성에 따른 View/Code 페이지를 가지고 있습니다.
Value 안에는 비슷한 형태로 리소스를 관리하는 파일이 있네요.



그리고 프로젝트 하단에 보면 AndroidManifest.xml 파일도 발견 할 수 있습니다.
어려운건 없어 보이네요.


간단히 테스트를 해 보도록 하죠.
프로그램이 시작되면, "Korea, 2010" 이라는 문자열이 출력되도록 프로그램을 수정해 봅시다.

values 안에 strings.xml 을 열어, 아래와 같이 문자열을 추가시킵니다.


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, Main!</string>
    <string name="app_name">AndroidTest</string>
 <string name="MainString">Korea, 2010</string>
</resources> 


 
그리고나서 layout 안에 main.xml 파일을 열어 android:text 에 값을 아래처럼 변경해 줍니다.


<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/MainString"
    /> 




Markup Language 형태인지라 크게 어려운게 없습니다.



지금까지는 layout 에서 리소스를 접근하는 방법이었습니다. 그렇다면, src 패키지 안에서는 어떻게 리소스에 접근하는지 살펴봅시다.


기존 main.xml 파일을 조금 수정해 봅시다. TextView 에 id 값을 부여합니다.


<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/MainString"
    android:id="@+id/MainTextView"
    /> 




 
그리고나서 src 안에 Main.java 파일을 열어 아래처럼 코드를 추가합니다.


public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        ((TextView)findViewById(R.id.MainTextView)).setText("너구리 라면");
    } 




따로 설명드리지 않아도 아실거라고 생각합니다.
findViewById() 함수를 통해서 원하는 리소스(컴포넌트)를 가져옵니다. 그리고 casting 을 해 준 뒤, "Hello, 2010" 문자열 대신 "너구리 라면" 이라는 문자열을 넣어 주는 것이죠.

실행해 보니 잘 되는군요.
이때 gen 안에 R.java 을 열어보면 방금 추가해준 MainTextView 가 추가된 것을 확인하실 수 있습니다.

이정도면 어떤 프로그램이든 만들 수 있을 것 같네요.
물론 약간의 삽질과 땀을 필요로 하겠죠. ㅎ



그럼 마지막으로 Android 어플의 생애주기를 알아보도록 하겠습니다. 인터넷에 검색해 보죠.



상당히 많은 그림이 나오네요. 함부로 가져오면 안되므로..직접 검색해 보시기 바랍니다. ㅋ

http://www.google.com/images?hl=ko&source=imghp&q=android+lifecycle&btnG=%EC%9D%B4%EB%AF%B8%EC%A7%80+%EA%B2%80%EC%83%89&gbv=2&aq=f&aqi=&aql=&oq=&gs_rfai=

그럼 다음시간에는 간단한 프로그램을 한번 만들어 보도록 하겠습니다.
그림판..정도?


신고