안드로이드에선 중요한 개념 세가지가 있단다.
첫번째, 액티비티 (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 가 선언되어 있음을 확인할 수 있다.
여기까지는 뭐 프로젝트 생성시에 대충 다 만들어 주는 것이니, 대충 상호작용의 구조만 확인하고 넘어가도록 하겠다.
끗
'Android Studio 공부 시작' 카테고리의 다른 글
[Ch3-3] 진행상황 다이얼로그 표시하기, Displaying a progress dialog (Processing Message dialog box) (0) | 2019.06.06 |
---|---|
[Ch3-2] 액티비티의 생명 주기 (life cycle of an activity) (0) | 2019.06.06 |
[Ch2-4] 안드로이드 스튜디오 APK 생성 및 App bundle 생성 (0) | 2019.06.05 |
[Ch2-3] Android Studio Debugging 실행 (0) | 2019.06.04 |
[Ch2-2] Android Studio Debugging (안드로이드 스튜디오 디버깅) Types of Break Points (브레이크 포인트의 종류) (0) | 2019.06.04 |