[Android 앱개발 입문] 액티비티 (# 추가하기)
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) 권한 설정
: 앱이 사용자의 기기에서 특정 작업을 수행하기 위해 필요한 권한을 명시
: 다른 앱이 이 애플리케이션과 상호작용하기 위해 필요한 권한도 설정