짱짱해커가 되고 싶은 나

[안드로이드 취약점 진단] 1-2. 안드로이드 애플리케이션 구성요소 본문

모바일

[안드로이드 취약점 진단] 1-2. 안드로이드 애플리케이션 구성요소

동로시 2022. 6. 7. 02:13

애플리케이션을 구성하는 컴포넌트는 다음과 같이 구성되어 있고, 각 구성요소를 사용하기 위해 인텐트를 이용해야한다.

1. 액티비티

2. 컨텐트 프로바이더

3. 서비스

4. 브로드캐스트 리시버

 

액티비티 (Activity)

애플리케이션 1개의 화면을 의미 (사용자에게 보여주는 디바이스의 인터페이스 & 사용자와 직접 상호작용)

생애 주기에 따라 사용자와 상호작용을 하지 않는 액티비티는 비활성화 및 소멸 될 수 있음

화면 전환이 이루어졌을 때 멈춤 상태가 될 수 있고 전 단계로 되돌아가면 즉시 결과 확인 가능

 

서비스 (Service)

화면에 표시되지 않고 백그라운드에서 실행되는 컴포넌트 (백그라운드에서 액티비티 실행과 비슷한 프로세스로 동작)

 

=> 액티비티와 서비스는 UI 스레드라고 불리는 동일한 애플리케이션 스래드로 실행

 

브로드캐스트 리시버 (Broadcast Recevier)

특정 작업이 발생한 경우, 해당 이벤트를 받고자 하는 곳에 알려주는 기능

(실시간으로 시스템의 상태를 확인해 이벤트가 발생했을 때 응답/ 디바이스에 의해 발생하는 notification 등을 이용해 사용자에게 알림)

다양한 이벤트를 개발자가 항상 확인하고 처리하는 문제 해결

 

컨텐트 프로바이더 (Content Provider)

애플리케이션 사이에서 데이터를 공유하기 위한 인터페이스 (CRUD 원칙 준수)

(∵ 안드로이드는 기본적으로 각 애플리케이션마다 샌드박스로 동작 -> 애플리케이션 내의 데이터는 해당 애플리케이션에서만 접근 가능)

다른 애플리케이션에서의 데이터 접근을 허용하기 위해 컨텐트 프로바이더를 정의해서 사용 (큰 데이터를 공유하는데 적합)

(작은 데이터는 intent로 애플리케이션간 공유 가능)

Comments