앱은 어떻게 실행되는 걸까요

1. 시작 진입점부터 살펴보기

Android 앱이 어떻게 시작되는지 알려면 가장 먼저 전역 설정 파일인 AndroidManifest.xml을 봐야 합니다.

AndroidManifest.xml을 열고 다음 코드를 찾으세요:

<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>Code language: HTML, XML (xml)

이 코드는 세 가지 중요한 일을 합니다:

  1. Activity 등록: MainActivity는 반드시 AndroidManifest.xml에 등록되어야 합니다. 그렇지 않으면 시스템이 인식하지 못해 사용할 수 없습니다.
  2. 메인 진입점 선언: <action android:name="android.intent.action.MAIN" />은 이 Activity가 앱의 메인 Activity임을 나타냅니다.
  3. 런처 진입점 선언: <category android:name="android.intent.category.LAUNCHER" />은 홈 화면의 앱 아이콘을 탭했을 때 가장 먼저 시작되는 Activity임을 나타냅니다.

MAIN과 LAUNCHER를 동시에 가진 Activity만 앱의 시작 진입점이 됩니다.


2. Activity란 무엇인가

Activity는 Android 앱의 얼굴입니다. 화면에서 보이는 모든 것은 Activity 안에서 실행됩니다.

app/java/ 디렉터리 아래의 MainActivity.java를 열면 다음과 같습니다:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}Code language: JavaScript (javascript)

하나씩 뜯어봅시다:

코드설명
extends AppCompatActivityAppCompatActivity를 상속합니다. Android 2.1까지 하위 호환되는 Activity입니다.
모든 Activity는 Activity(또는 하위 클래스)를 상속해야 합니다Android 컴포넌트의 필수 요구사항입니다
onCreate()Activity가 생성될 때 자동으로 실행되는 수명 주기 메서드
setContentView(R.layout.activity_main)현재 Activity에 레이아웃 파일을 로드하고 바인딩합니다

3. 로직과 뷰의 분리 (MVC와 유사)

Android는 로직과 뷰의 분리라는 설계 철학을 따르며, 이는 MVC 패턴과 비슷합니다:

  • 로직: java/ 디렉터리의 Activity 클래스에 작성
  • 뷰: res/layout/ 디렉터리의 XML 레이아웃 파일에 작성

setContentView(R.layout.activity_main)은 로직과 뷰를 연결하는 다리입니다. activity_main.xml 레이아웃을 MainActivity 안에 “끼워 넣는” 역할을 합니다.


4. 레이아웃 파일 분석

레이아웃 파일은 res/layout/activity_main.xml에 있습니다.

Android Studio는 두 가지 편집 모드를 제공합니다:

모드설명
Design드래그 앤 드롭 방식의 시각적 편집 화면 (WYSIWYG)
TextXML 코드 편집 화면

activity_main.xml을 열면 핵심 내용은 다음과 같습니다:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="안녕하세요 Foxdevelop" />Code language: HTML, XML (xml)
  • TextView는 텍스트를 표시하는 데 사용되는 기본 위젯입니다
  • android:text 속성은 위젯에 표시될 텍스트 내용을 지정합니다

화면에서 보이는 “Hello World”(또는 사용자 정의 텍스트)는 Java 코드가 아니라 여기서 정의됩니다.


5. 전체 시작 흐름 요약

시작 과정을 순서대로 정리하면 다음과 같습니다:

사용자가 홈 화면의 앱 아이콘을 탭
        ↓
시스템이 AndroidManifest.xml을 읽음
        ↓
MAIN + LAUNCHER가 있는 Activity(MainActivity)를 찾음
        ↓
MainActivity 인스턴스 생성
        ↓
onCreate() 수명 주기 메서드 실행
        ↓
setContentView()가 activity_main.xml 레이아웃 로드
        ↓
레이아웃의 TextView가 텍스트 표시
        ↓
화면에 "Hello World" 출력Code language: CSS (css)

한 문장으로 요약하면:

설정 파일이 진입점 선언 → 메인 Activity 생성 → onCreate 실행 → 레이아웃 파일 로드 → 화면에 렌더링


6. 개발 팁

  • 에뮬레이터를 매번 종료할 필요는 없습니다: 실행 후 앱을 중지하려면 툴바의 🔴 Stop 버튼만 누르면 됩니다. 종료하거나 에뮬레이터를 끌 필요가 없습니다.
  • 코드를 수정한 후에는 ▶ Run을 클릭하여 재배포하면 변경 사항을 바로 확인할 수 있습니다.

7. 요약

계층해당 파일책임
설정 계층AndroidManifest.xml진입 Activity 선언
로직 계층MainActivity.javaActivity 동작 제어
뷰 계층activity_main.xml화면 내용 정의

설정 파일 → 메인 Activity → onCreate() 메서드 → 뷰 레이아웃 로드 → 화면 표시

앱은 어떻게 실행되는 걸까요

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다