[Ch3-1] 안드로이드의 중요 개념, 내맘대로 쉽게 이해하는 액티비티 (Activities)
안드로이드에선 중요한 개념 세가지가 있단다.
첫번째, 액티비티 (Activities)
두번째, 프래그먼트 (Fragments)
마지막으로, 인텐트 (Intents) 가 있다.
프래그먼트랑 인텐트는 다음 장에서 알아보고, 당장에 우리가 많이 접할 액티비티부터 알아보자.
1. MainActivity.java 와 activity_main.xml 의 차이
처음 프로젝트를 생성하면 기본적으로, MainActivity.java 와 activity_main.xml 파일 두가지를 생성해 주는데, 여기서 말하는 액티비티가 책이나 다른 개발자들이 말하는 개념의 액티비티가 맞는것 같다.
어떤 개발자 강의를 보면, 액티비티를 쉽게 이해하는 방법은 그냥 화면 한 단위라고 이해하면 편하다고 하는 사람도 있다.
그럼, 나도 개발을 잘 모르고 공부하는 입장이니, 저 고수분이 알려준데로 하나의 화면단위로 이해하겠다.
그런데 문제는?? 최초로 Empty Activity 로 프로젝트를 생성했을 때, Hello world! 라는 메시지를 던져주는 화면은 하난데, 왜 나는 MainActivity.java 와 activity_main.xml 두개의 파일을 넘겨받았는가?
쉽게 이해하기 위해 내부의 기능(앱의 실행, 중지, 종료 및 지속적인 계산이 필요한 경우 계산 로직 등의 행동)을 담당하는 부분은 MainActivity.java 에서 이루어지고, 이를 화면으로 (UI로: User Interface)로 보여주는 부분을 담당하는 곳은 activity_main.xml 이라고 이해하기로 했다.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
이 라인은 MainActivity.java 에 자동으로 기입되는 코드인데, 여기서 보면, setContentView(R.layout.activity_main); 에서 기능과 화면을 서로 연결해주는 부분을 찾을 수 있다.
프로젝트 View의 위치로는 res -> layout 에 위치하고 있는걸 확인했다. layout 이라고 폴더명까지 지정된걸 보니, 이해한게 대충 맞다는 확신이 생긴다.
2. 액티비티의 특징
앱에서의 모든 액티비티는, 그 사용에 대한 선언을 AndroidManifest.xml 무조건 해야 된단다.
ProjectView-> Manifests -> AndroidManifest.xml 로 가서 확인해보자.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.activity101">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
<activity ...... </activity> 태그 사이에 보면 MainActivity 가 선언되어 있음을 확인할 수 있다.
여기까지는 뭐 프로젝트 생성시에 대충 다 만들어 주는 것이니, 대충 상호작용의 구조만 확인하고 넘어가도록 하겠다.
끗