[Android] 안드로이드 스튜디오 이해하기

gyeol·2025년 4월 23일
post-thumbnail

안드로이드

안드로이드는 리눅스 기반으로 운영되며 자바와 코틀린 언어를 사용해 개발된다.

  • 리눅스 커널 : 리눅스 기반 오픈 소스 소프트웨어 스택
  • 안드로이드 런타임 : ART라고도 하며 앱을 실행하는 역할
  • 자바 API 프레임워크 : 앱 개발 시 사용하는 자바 API

안드로이드는 런타임때 그대로 실행하지 않고 DEX 파일로 컴파일하여 ART가 DEX 파일을 해석 후 실행한다.

컴포넌트

안드로이드에서는 클래스로 각각의 컴포넌트를 개발한다.
안드로이드의 컴포넌트는 총 4종류이다

  • Activity : 액티비티 화면 구성
  • Service : 서비스 백그라운드 작업
  • ContentProvider : 앱의 데이터 공유
  • BroadcastReciver : 시스템 이벤트 발생 시 실행

각각의 컴포넌트는 앱 안에서 독립된 실행 단위이기에 코드 결합이 발생하지 않고 앱의 실행 시점이 다양하다. 각각 독립된 실행 단위이기에 다른 애플리케이션을 라이브러리처럼 사용 가능하다. 우리가 카카오톡 내에서 카메라 기능을 사용할 수 있는 것 처럼 말이다.

리소스

안드로이드 스튜디오를 실행하면 res라는 폴더가 생성된다.

해당 폴더는 drawable, mipmap ,layout 등의 하위 폴더로 구성되며 각 리소스 폴더에 하위 폴더를 정의하지 못하며 리소스 파일명은 알파벳 대문자를 사용하지 못한다.

  • drawable : 이미지 리소스
  • layout : UI 구성에 필요한 xml 리소스
  • mipmap : 앱 아이콘 이미지
  • values : 문자열 등의 값으로 이용되는 리소스

메인 환경

AndroidManifest.xml은 안드로이드 앱의 메인 환경 파일이다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyApplication"
        tools:targetApi="31">
        <receiver
            android:name=".ReplyReciver"
            android:enabled="true"
            android:exported="true"></receiver>

        <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>
    </application>

</manifest>

다음과 같은 코드로 구성되어 있으며 <application> 태그는 앱 전체를 대상으로 하는 설정이다. 이 태그 안에 icon 속성은 저장한 이미지가 앱을 설치한 사용자의 폰에 보이는 실행 아이콘이다. label은 앱의 이름이다.

메인 액티비티 파일

처음 프로젝트를 생성하게 되면 MainActivity.kt 파일이 생성되는데 이 파일이 안드로이드 스튜디오의 메인 액티비티 파일이 된다.

class MainActivity : AppCompatActivity(){
	override fun onCreate(savedInstanceState: Bundle?){
    	super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_main)
    }
}

위와 같은 구조로 기본 파일이 생성된다.
setContentView() 함수의 매개변수에 지정한 내용을 액티비티 화면에 출력한다. 여기서는 R.layout.activity_main으로 지정했기에 res/layout/activity_main.xml 파일에 구성한 내용이 화면에 출력된다.
그리고 중간에 보이는 enableEdgeToEdge() 함수는 액티비티 화면이 상단의 배터리 표시 영역과 하단의 안드로이드 버튼 영역까지 나오도록 설정한 것이다.

profile
공부 기록 공간 '◡'

0개의 댓글