본문 바로가기
Android Studio

[Android 앱개발 입문] 액티비티 (# 추가하기)

by 젼젼39 2024. 3. 20.

1. 안드로이드 4대 컴포넌트

        - 애플리케이션의 구조를 정의, 안드로이드 시스템과 어떻게 상호 작용하는지를 결정

1) 액티비티
        : 사용자가 직접 상호작용하는 화면
            (ex. 이메일 앱의 각각 독립된 액티비티 : 이메일 목록을 보여주는 화면, 이메일 작성 화면 등)

        - 역할 : 사용자 인터페이스(UI)를 담당, 사용자의 입력에 반응하는 이벤트 기반 프로그래밍을 가능하게 함

2) 서비스
        : 백그라운드에서 오랜 시간 동안 실행되어야 하는 작업을 수행함
            (ex. 음악 재생, 파일 다운로드 등)

        - 역할 : 사용자가 직접적으로 인지하지 못하는, 앱의 백스테이지에서 일어나는 작업을 담당

3) 브로드캐스트 리시버
        : 안드로이드 시스템으로부터 발송되는 다양한 이벤트나 정보를 애플리케이션이 받을 수 있게 해주는 컴포넌트
            (ex. 배터리 부족 경고, 화면 꺼짐 등의 시스템 이벤트 처리 시 사용)

        - 역할 : 애플리케이션은 브로드캐스트 메시지를 구독하고, 해당 이벤트가 발생했을 때 반응함

4) 콘텐트 프로바이더
        : 애플리케이션 간의 데이터 공유를 가능하게 함.
            (ex. 연락처 애플리케이션이 다른 애플리케이션에 연락처 데이터를 제공할 때 사용됨) 

        - 역할 : 데이터를 저장하고 관리하는 일종의 데이터베이스 역할을 함, 다른 애플리케이션에 안전하게 데이터를 공유

 

 

2. Activity

    : 사용자가 직접 상호 작용(기능을 수행할 때 마다 등장)하는 각각의 독립적인 창을 의미함.
    - 사용자가 다양한 작업을 수행할 수 있는 인터페이스 제공

    - UI 구성 : 각 액티비티는 하나의 창을 가지며, 이 창에는 View라고 불리는 객체들을 통해 사용자 인터페이스가 구성됨
            (view 객체 : 버튼, 텍스트 필드, 이미지 등 사용자가 볼 수 있는 모든 요소들을 포함)

    - 애플리케이션의 시작 : 모든 안드로이드 애플리케이션은 최소 1개 이상의 액티비티를 포함함
        (앱 시작 시 시스템은 지정된 '메인' 액티비티를 실행해 사용자에게 첫 화면을 보여줌)

 

1) 액티비티와 사용자 인터페이스 연결

    setContentView() 를 이용해 액티비티에 사용자 인터페이스를 정의한 View를 설정

class FirstActivity : AppCompatActivity(){
    override fun onCreate(savedInstanceState: Bundle?){
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_first)
    }
}

        //R.java 파일 : res 디렉토리에 있는 모든 리소스에 대한 리소스 id를 포함
                   R . [리소스유형] . [리소스_이름]    R.drawable.myimage  /  R.layout.activity_first  /  R.string.hello

2) 액티비티 등록

    : 모든 Activity 컴포넌트는 Android Manifest 파일에 등록되어야 함

<manifest>
    <application>
        <activity android:name=".FirstActivity"
            android:label="First Activity">
        </activity>
    </application>
</manifest>

 

3) Android manifest 역할

    : AndroidManifest.xml 파일은 안드로이드 애플리케이션의 심장부
    - 애플리케이션의 기본 구조 정의, 시스템이 앱을 어떻게 실행해야 하는지 알려주는 중요한 지시사항 담음

    (1) 패키지 이름 설정
            : 앱의 고유 식별자로서, 애플리케이션의 패키지 이름을 설정
              (구글 플레이와 같은 앱 스토어에서 앱을 구별하는 데 사용됨)

    (2) 구성 요소 선언
            : 액티비티, 서비스, 브로드캐스트 리시버, 콘텐트 프로바이더와 같은 애플리케이션 구성요소들의 존재를 시스템에 알림

    (3) 권한 설정
            : 앱이 사용자의 기기에서 특정 작업을 수행하기 위해 필요한 권한을 명시
            : 다른 앱이 이 애플리케이션과 상호작용하기 위해 필요한 권한도 설정