2022. 4. 21. 03:50ㆍ보안/모바일
무선모바일 중간고사 정리
안드로이드 애플리케이션 구성요소
컴포넌트들은 하나의 독립적인 형태로 존재함.
각 컴포넌트들은 고유의 기능을 수행함.
각 컴포넌트들은 인텐트를 통해 서로 상호작용함
액티비티 : 사용자에게 보여주는 디바이스 인터페이스
서비스 : 백그라운드로 실행
브로드케스트 수신자 : 애플리케이션 공유 공간
콘텐츠 제공자 : 실시간으로 시스템 상태를 확인
액티비티(Activity)
사용자가 애플리케이션과 상호작용하는 단일화면을 의미하며 모든 안드로이드 애플리케이 션은 액티비티로 구성
사용자와 상호작용을 담당하는 인터페이스
안드로이드 애플리케이션은 반드시 하나 이상의 액티비티를 포함
액티비티는 생명주기(Life Cycle) 관련 메서드들을 재정의하여 원하는 기능들을 구현
인텐트(Intent)를 통해 다른 애플리케이션의 액티비티를 호출할 수 있음
2개 이상의 액티비티를 동시에 Display 할 수 없음
1개 이상의 View 또는 ViewGroup을 포함
반드시 애플리케이션에는 하나 이상의 액티비티가 있어야 함
액티비티 내에 프래그먼트(Fragment)를 추가하여 화면을 분할시킬 수 있음
AndroidManifest.xml파일의 <activity> 태그에 정보가 수록
서비스(Service)
서비스는 사용자와 직접적으로 상호작용하는 요소는 아님.
백그라운드(Background)에서 어떠한 작업을 처리하기 위해 서비스를 사용
네트워크(Network)와 연동이 가능.
별도의 UI를 가지지 않으며 백그라운드에서 수행.
액티비티와 서비스는 UI 스레드라고 불리는 동일한 애플리케이션 스레드로 실행.
애플리케이션이 종료되어도 이미 시작이 된 서비스(Service)는 백그라운드(Background)에서 계 속 동작.
방송 수신자 (BroadCast Receiver)
방송 수신자(BroadCase Receiver)는 안드로이드 OS로부터 발생하는 각종 이벤트와 정보를 받아와 핸들링하는 컴포넌트
거의 대부분 UI를 가지지 않음.
안드로이드 디바이스의 특수한 상황에 대응하기 위해 사용
특정한 상황을 제외하고는 브로드캐스트는 시스템에서 시작
콘텐트 제공자 (Content Provider)
콘텐트 제공자(Content Provider)는 데이터를 관리하고 다른 애플리케이션의 데이터를 제공하는 데 사용되는 컴포넌트.
특정한 애플리케이션이 사용하고 있는 데이터베이스(DB)를 공유하기 위해 사용하며 애플 리케이션 간의 데이터 공유를 위해 표준화된 인터페이스를 제공
SQLite DB / Web / 파일 입출력 등을 통해서 데이터를 관리
외부 애플리케이션이 현재 실행 중인 애플리케이션 내에 있는 데이터베이스(DB)에 함부로 접근하지 못하게 할 수 있으면서 나 자신이 공개하고 공유하고 싶은 데이터만 공유할 수 있도록 도와줌
작은 데이터들은 인텐트(Intent)로 애플리케이션끼리 데이터를 서로 공유가 가능하지만 콘텐프로바 이더는 음악 또는 사진 파일 등과 같이 용량이 큰 데이터들을 공유하는데 적합.
프로바이더는 데이터의 Read, Write에 대한 퍼미션이 있어야 애플리케이션에 접근이 가능.
CURD(Create, Read, Update, Delete) 원칙을 준수.