[Android] 안드로이드의 기본 코드

1 minute read


안드로이드의 기본 코드

Empty 템플릿으로 프로젝트를 만들면 액티비티가 하나인 앱이 생성됩니다.

액티비티는 MainActivity.kt 파일에, UI 레이아웃은 activity_main.xml 파일에 작성되어 있고, 앱의 권한이나 기능 등을 설정하는 AndroidManifest.xml 파일도 생성됩니다.


AndroidManifest.xml


AndroidManifest.xml 파일에서는 앱의 기본 정보와 구성 요소, 권한, 기능을 선언합니다. 앱의 기본 정보는 앱의 패키지 이름, 앱 이름과 ID, 테마, 아이콘 등입니다.

패키지 이름은 manifest 태그의 속성으로 지정되고 나머지 항목은 application 태그의 속성으로 지정됩니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="kr.co.hanbit.myapplication">

    <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/Theme.MyApplication">
        <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>

액티비티 이외에도 서비스나 브로드캐스트 리시버, 콘텐트 프로바이더 등을 추가했다면 application 항목의 하위에 < service >, < receiver >, < provider > 등으로 등록해야 해당 구성 요소를 사용할 수 있습니다.

이외에도 메니페스트에 앱의 권한을 정의하거나 요청할 수 있고, 사용할 기능을 선언할 수 있습니다.

등록된 권한 요청은 앱 설치 시 사용자에게 고지되며, 중요한 권한의 경우 그 권한이 보호하는 영역에 접근할 때 사용자로부터 명시적인 사용 동의를 받도록 요구할 수 있습니다. 또는 앱에서 특정 구성 요소를 제공할 때 새로운 권한을 정의하여 그 권한을 가진 앱만 해당 구성 요소에 접근하도록 권한을 설정할 수도 있습니다. 권한 요청을 등록할 때에는 < uses-permission > 태그를 사용하고, 새로운 권한을 정의할 때에는 < permission > 태그를 사용합니다.

앱에서 특정 하드웨어나 소프트웨어 기능을 사용할 때에도 매니페스트에 그 기능을 사용할 것임을 선언해야 하며, 기능을 선언하면 해당 기능을 제공하지 않는 기기에 앱이 설치되지 않도록 배제할 수 있습니다.



MainActivity.kt


프로젝트를 생성하면 [java] 폴더 아래에 기본적으로 MainActivity.kt 파일이 생성됩니다.

MainActivity 클래스는 AppCompatActivity 클래스를 상속하는데, AppCompatActivity는 Activity 클래스의 하위 클래스로, Activity 클래스의 기능과 함께 이전 버전 안드로이드와의 하위 호환성을 제공합니다.

package kr.co.hanbit.myapplication

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)     // AppCompatActivity의 onCreate() 메서드를 먼저 호출
        setContentView(R.layout.activity_main) // 액티비티의 콘텐트 뷰 설정
    }
}



activity_main.xml


UI 레이아웃을 만들 수 있는 파일입니다.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

image-20210803124313369

UI는 직접 코드로 만들 수도 있고, 간편하게 드래그 앤 드롭 방식으로 구성할 수도 있습니다.

레이아웃, 위젯 등 UI의 여러 속성을 설정할 수 있습니다.



Categories:

Updated:

Leave a comment