본문 바로가기
대학/안드로이드(코틀린) 정리

안드로이드 앱 개발의 특징

by JJO.A 2022. 10. 21.
안드로이드는 컴포넌트를 기반으로 개발한다.

※컴포넌트 : 애플리케이션의 구성 요소

 

안드로이드앱은 컴포넌트 클래스와 일반 클래스로 구성된다.
  • 컴포넌트 클래스 : 생명주기를 안드로이드 시스템에서 관리
  • 일반 클래스 : 생명주기를 개발자 코드에서 관리

 

안드로이드 컴포넌트의 종류
  • 액티비티 : 화면을 구성하는 컴포넌트
  • 서비스 : 백그라운드 작업을 하는 컴포넌터
  • 콘텐츠 프로바이더 : 앱의 데이터를 공유하는 컴포넌트. ex)카카오톡에서 프로필 변경시 갤러리 앱 사용
  • 브로드캐스트 리시버 : 시스템 이벤트가 발생할 때 실행되게 하는 컴포넌트. ex) 부팅 완료, 배터리 방전

 

4가지 컴포넌트의 구분

개발자가 컴포넌트 클래스를 만들 때 지정된 클래스르 상속받아야 하는데 이 상위 클래스를 보고 구분 할 수 있음.

ex) 액티비티는 Activity , 서비스는 Service, 콘텐츠 프로바이더는 ContentProvider, 브로드캐스트 리시버는 BroadcastReceiver클래스를 상속받아 생성함.

 

컴포넌트의 구성

앱을 만들 때 어떤 컴포넌트를 어떻게 구성하는지는 설계에 따라 달라지며 정해진 규칙은 없음.

ex) A앱( 액티비티1) / B앱(액티비티1, 액티비티2)/ C앱(액티비티1, 콘텐츠 프로바이더)/...

 

컴포넌트는 앱 안에서 독립된 실행 단위이다.

독립된 실행 단위 : 컴포넌트끼리 서로 종속되지 않아 코드 결합이 발생하지 않음.

ex )  카카오톡 목록 화면(ListActivity)과 채팅화면(ChatActivity)가 있다고 가정하고 목록화면에서 채팅화면으로 화면전환을 할 경우

 

ListActivity → ChatActivity : 직접 실행하는 방법은 불가능 하다.

ListActivity → 안드로이드 시스템 → ChatActivity : 간접 실행하는 방법으로 실행해야 함

 

불가능한 이유는 컴포넌트의 생명주기를 안드로이드에서 관리하므로 코드에서 직접 객체를 생성해 실행 할 수 없기 때문이다.

 

앱 실행 시점이 다양하다.

앱의 실행 시점이 다양하다. 예를 들어서 카카오톡 앱 버튼을 눌러 실행해서 채팅 목록이 보이는 화면으로 이동 할 수 있고 메시지 수신 알림 버튼을 클릭해서 바로 채팅창으로 이동할 수도 있다. 때문에 안드로이드 앱에서는 메인 함수(main function) 개념이 없다고 말하기도 한다.

 

애플리케이션 라이브러리 사용가능

예를 들어, 카카오톡 내에서 카메라 버튼을 사용하여 핸드폰 내부 카메라를 이용할 수 있다.

 

리소스를 활용한 개발

리소스란 코드에서 정적인 값을 분리한 것, 리소스를 사용하면 코드가 짧아지기 때문에 생산성과 유지.보수성이 좋아진다.