Android Studio

Android Studio) 안드로이드 구성

zs1397 2023. 1. 6. 16:30

 

안드로이드 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