[Android Study] 안드로이드 특징

728x90
반응형

* 수업시간에 배우는 내용과 책을 독학하면서 스터디한 내용을 정리해볼 예정이다.

https://m.yes24.com/Goods/Detail/116012310

 

Do it! 깡샘의 안드로이드 앱 프로그래밍 with 코틀린 - 예스24

20여 년간 개발과 강의 현장에서 쌓은 ‘깡샘’의 노하우를 만나 보자! 개정 2판이 출간되었다. 이번 판에서는 안드로이드 13, 티라미수 기준으로 달라진 내용을 보충했으며 실습 소스를 업데이

m.yes24.com

 

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

 - 안드로이드 앱 개발의 핵심은 컴포넌트이다. 하나의 어플리케이션은 여러 컴포넌트로 구성되고, 안드로이드에서는 클래스로 컴포넌트를 개발한다. 즉, 하나의 클래스가 하나의 컴포넌트가 되는 것이다. 반대로 애플리케이션을 구성하는 모든 클래스가 컴포넌트라는 이야기는 아니다. 

 - 앱은 여러 클래스로 구성되는데 크게 컴포넌트 클래스와 일반 클래스로 구분된다. 두 클래스는 둘 다 개발자가 만드는 클래스이지만 런타임 때 생명주기를 누가 관리하는가에 따라 차이가 난다.

  앱이 실행될 때 클래스의 객체 생성부터 소멸까지 생명주기 관리를 개발자 코드에서 한다면 일반 클래스이고,

  생명주기를 안드로이드 시스템에서 관리한다면 컴포넌트 클래스이다.

 - 컴포넌트는 총 4종류인데 다음과 같다.

    * 액티비티: 화면을 구성하는 컴포넌트이다. 앱이 실행되면 액티비티에서 출력한 내용이 안드로이드폰에 나온다.

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

    * 콘텐츠 프로바이더: 앱의 데이터를 공유하는 컴포넌트이다. 하나의 앱에서 데이터를 다른 앱에 공유하기 위해 사용한다.

       (ex: 카카오톡 앱에서 프로필을 변경할 때 갤러리 앱의 사진을 이용)

    * 브로드캐스트 리시버: 시스템 이벤트가 발생할 때 실행되게 하는 컴포넌트이다. 여기서 말하는 이벤트느 시스템에서

       발생하는 특정 상황을 의미한다 (ex: 부팅완료, 배터리 방전 등)

 

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

 - 독립된 실행 단위란 컴포넌트끼리 서로 종속되지 않아서 코드 결합이 발생하지 않는다는 의미이다. 카카오톡을 예로 들면

   채팅방 목록화면인 ListActivity와 채팅 화면인 ChatActivity가 있다고 가정할 때, ListActivity에서 ChatActivity의 객체를

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

   실행할 수 없다.

 - 따라서, 안드로이드 시스템에 의뢰해 두 클래스가 서로 종속되지 않고 독립해서 실행되게 해야 한다.

 

* 앱 실행 시점이 다양하다.

 - 카카오톡 같은 경우 앱을 키면 채팅방 목록화면이 먼저 뜬다. 하지만, 사용자가 알림 창에서 메세지 수신 알림을 터치하면

   채팅방 목록이 뜨지않고 바로 채팅화면으로 열린다. 따라서 앱의 실행 시점은 다양할 수 있다.

   그래서 안드로이드 앱에는 메인 함수 개념이 없다고 말한다.

 

 

728x90
반응형
TAGS.

Comments