안드로이드 4대 컴포넌트 구성
- 각 컴포넌트는 고유의 기능을 수행
- 각 컴포넌트는 인텐트를 통해 서로 상호작용함
1. Activity(엑티비티)
- UI 화면 담당하는 컴포넌트
- 자바 소스에서 activity 클래스를 상속하고 기본으로 가지고 있는 생명주기 메소드를 재정의하여 기능을 구현한다.
- 적어도 하나의 액티비티를 갖고 있어야 한다.
- 하나 이상의 View or ViewGroup을 가지고 있어야 한다.
2. Service(서비스)
- 백그라운드에서 실행되는 프로세스(동작은 메인스레드에서 한다.)
- 음악 앱 같은 경우 Background에서 음악을 계속 재생시키기 때문에 서비스에 해당된다.
- 네트워크와 연동 가능하다.
- Activity와 Service는 UI 스레드라고 불리는 동일한 애플리케이션 스레드로 실행된다.
3. BroadCast Receiver(방송 수신자)
- 안드로이드 OS로 부터 발생하는 이벤트 정보를 받고 대응하는 컴포넌트이다.
- UI x, event 발생 시 해당 이벤트에 맞춰 정의한 작업을 수행("메세지가 도착했습니다"와 같은 방송)
4. Content Provider(콘텐트 제공자)
- 데이터를 관리하고 다른 애플리케이션 데이터를 제공해주는 컴포넌트
- 데이터베이스(DB)를 공유하기 위해 사용
- 용량이 큰 데이터 공유하는데 적합, 데이터 읽고 쓰기 가능
- 앱을 처음 설치할 때 권한 요청이 뜨는 것이 콘텐츠 제공자 예시
5. Intent(인텐트)
- 애플리케이션 컴포넌트(구성요소) 간 작업 수행을 위해 정보를 전달하는 메신저 역할
- 서로 독립적으로 동작하는 4가지 컴포넌트 간 상호통신을 위한 장치
유형:
명시적 인텐트 - Intent를 충족하는 애플리케이션이 무엇인지 명시
Intent intent = new Intent(getApplicationContext(),MainActivity::class.java)
startActivity(intent)
암시적 인텐트 - 구성요소 이름x, 작업을 통해 다른 앱의 구성요소가 이를 처리할 수 있도록함.(ex. 지도 위치표시)
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://..."))
startActivity(intent)
안드로이드 Activity 생명주기
onCreate(): 최조 앱 실헹 시 호출, 초가화 관련 작업
onStart(): 이 시점부터 사용자가 엑티비티 볼 수 있음
onResume(): 엑티비티가 실제 사용자와 상호작용 가능힌 ground에 위치하면 호출, 엑티비티 실행 중
onPause(): 엑티비티 실행 중 상태에서 사용자와 상호 불가능한 상태
onStop(): 엑티비티가 더 이상 보이지 않을 때 호출
onDestroy(): 엑티비티 종료, 프로세스 자체 종료되면 호출
※ App 배포 시
APK: apk 파일 하나를 통해 많은 디바이스 호환을 지원한다. 그렇다 보니 apk자체에 여러개 ABI(Android Binary Interface)를 포함, apk 파일 크기는 커질 수 밖에 없다.
AAB(Android App Bundle): apk 용량 문제해결, 경량화 된 앱
VersionCode: 앱의 버전 코드를 나타내는 정수, 첫번째 버전 1이고 이후 versionCode를 1씩 증가시켜 배포, 사용자 공개 x
VersionName: 앱의 배포 버전을 나타내는 문자열, <major>-앱 큰 틀이 변화, <minor>-기능추가,삭제 등, <point>-버그수정
'Android Studio' 카테고리의 다른 글
Android Studio) Context란? (0) | 2023.01.06 |
---|---|
Android Studio) 기본 구성과 개념 (0) | 2023.01.06 |