Android Study 01

parkchaebin·2021년 9월 26일
0

AndroidStudy

목록 보기
1/1
post-thumbnail

안드로이드 개요

안드로이드 앱 개발 특징

컴포넌트를 기반으로 한 개발

컴포넌트는 애플리케이션의 구성 요소이다. 하나의 앱은 여러 컴포넌트로 구성되는데, 안드로이드에서는 클래스로 컴포넌트를 개발한다.
하지만 애플리케이션을 구성하는 모든 클래스가 컴포넌트는 아니며, 런타임 때 생명주기를 누가 관리하는가에 따라 컴포넌트 클래스일반 클래스 로 구분한다.
클래스의 객체 생성부터 소멸까지 생명주기 관리를 개발자 코드에서 한다면 일반 클래스, 개발자가 만들었찌만 생명주기를 안드로이드 시스템에서 관리한다면 컴포넌트 클래스 이다.

컴포넌트 종류

1. 액티비티
화면을 구성하는 컴포넌트이다.

2. 서비스
백그라운드 작업을 하는 컴포넌트이다. 화면과 상관없이 백그라운드에서 장시간 실행해야 할 업무를 담당한다.

3. 콘텐츠 프로바이더
앱의 데이터를 공유하는 컴포넌트이다. 하나의 앱이 자신의 데이터를 다른 앱에 공유하려면 콘텐츠 프로바이더를 만들어야 하며, 다른 앱에서는 그 콘텐츠 프로바이더를 이용해 데이터에 접근한다.

  • ex) 카톡 프로필 변경할 때 갤러리 앱에 접근

4. 브로드캐스트 리시버
시스템 이벤트가 발생할 때 실행되게 하는 컴포넌트이다. 여기서 이벤트는 사용자 이벤트가 아니라 시스템에서 발생하는 특정 상황(부팅 완료, 배터리방전 등)을 의미한다.

각 컴포넌트는 상위 클래스를 보고 구분할 수 있다.

  • 액티비티 : Activity
  • 서비스 : Service
  • 콘텐츠 프로바이더 : ContentProvider
  • 브로드캐스트 리시버 : BroadcastReceiver

컴포넌트 특징

1. 컴포넌트는 앱 안에서 독립된 실행 단위이다.
독립된 실행단위란 컴포넌트끼리 서로 종속되지 않아서 코드 결합이 발생하지 않는다는 의미이다.
예를 들어, ListAcivity -> ChatActivity으로 화면 전환을 한다고 할 때 ListActivity에서 ChatActivity 객체를 생성해 실행하는 것이 아니라, 안드로이드 시스템에 의뢰하여 ChatActivity를 실행한다. 컴포넌트의 생명주기를 안드로이드 시스템에서 관리하기 때문에 직접 객체를 생성해 실행할 수 없기 때문이다.
즉, 각 액티비티를 코드로 결합해 직접 실행하는 것이 아니라 안드로이드 시스템에 의뢰함으로써 두 클래스가 종속되지 않고 독립해서 실행되게 한다.

2. 앱 실행 시점이 다양하다.
안드로이드 앱에는 메인 함수 개념이 없다.
안드로이드 앱은 실행 시점이 다양해서 단일 시작점을 의미하는 메인 함수 개념이 없다고 표현한다.

3. 애플리케이션 라이브러리를 사용할 수 있다.
애플리케이션 라이브러리란 다른 애플리케이션을 라이브러리처럼 이용하는 것을 말한다.
카카오톡의 경우, 채팅 화면에서 카메라 앱을 실행해 사진을 찍은 뒤 사진 데이터를 반환받아 채팅화면에 출력할 수 있다. (카카오톡 앱이 카메라 앱을 라이브러리처럼 이용한 경우)

리소스를 활용한 개발

안드로이드 앱 개발은 리소스를 많이 활용한다. 리소스란 코드에서 정적인 값을 분리한 것이다. 이렇게 하면 코드가 짧아지고 개발 생산성과 유지보수성이 좋아진다.
이미지 등 일부를 제외하면 대부분 리소스는 XML 파일로 작성한다.

profile
안드로이드 개발자

0개의 댓글