진입점(Entry point)
일반적으로 프로그램들은 시작점(진입점)이라는 것이 존재합니다. 자바의 경우, main() 메소드로 진입을 하며 진입은 한개로 이루어지는 것이 보편적이지만, 안드로이드의 경우 단일 진입점 혹은 시작점이라는 것이 존재하지 않고, 4가지의 컴포넌트가 이를 대체합니다.
AndroidManifest.xml
위 화면은 AndroidManifest.xml 화면이며 이제 막 만든 프로젝트를 열어본 것입니다. Activity는 MainActivity밖에 없기 때문에 단일 시작점은 MainActivity가 됩니다.
현재 이 프로젝트를 실행하면, 아래와 같이 기본으로 제공하는 Hello World! 화면이 뜨게 될 것입니다.
여기서 새로운 Activity를 추가해보도록 하겠습니다.
전혀 다른 액티비티 화면을 보여주기 위해 Login Activity를 추가하였습니다.
최종적으로 Finish를 눌러, LoginActivity를 생성하게 되면, 이제 안드로이드에서 로그인을 할 수 있는 액티비티와 로그인 기능에 도움이 되는 코드, layout 등이 추가 됩니다.
이제 이 로그인을 메인으로 잡아보도록 하겠습니다.
추가된 Activity
<activity
android:name=".ui.login.LoginActivity"
android:exported="false"
android:label="@string/title_activity_login" />
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
위 내용은 AndroidManifest.xml에서 Acvitiy 부분만 가져온 것입니다. 기존에는 MainActivity밖에 없었지만, 상단에 LoginActivity가 추가된 것을 볼 수 있습니다.
MainActivity를 보면, intent-filter라는 것이 추가로 지정이 되어 있는데 이 영역으로 Entry Point를 변경할 수 있습니다.
Main과 Launcher 변경
<activity
android:name=".ui.login.LoginActivity"
android:exported="true"
android:label="@string/title_activity_login" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:exported="true">
</activity>
위와 같이 intent-filter를 LoginActivity 영역으로 변경을 한 후, 프로그램을 다시 실행시켜보았습니다.
진입점이 변경된 모습
변경을 하니 위와 같이 로그인 화면이 처음에 등장하는 것을 확인할 수 있습니다. 이처럼 Entry Point를 변경하기 위해서는 AndroidManifest.xml에서 intent-filter를 변경해주면 쉽게 변경이 된다는 것을 알 수 있습니다.
'Android > Android Dev' 카테고리의 다른 글
안드로이드(Android) 4대 컴포넌트(Component) (0) | 2022.04.23 |
---|---|
[Android] 안드로이드 프로젝트 구조 설명 (0) | 2022.04.17 |
[Android] 안드로이드 버전별 점유율 (0) | 2022.04.17 |