Andorid Application Fundamentals
Updated:
App components
Activities
- 사용자 인터페이스가 있는 단일 화면
- 여러 액티비티가 함께 작동하여 사용자 환경을 형성하지만, 각자 독립적인 형태
Services
- 백그라운드에서 실행되는 구성 요소로, 오랫동안 실행되는 작업을 수행하거나 원격 프로세스를 위한 작업을 수행하는 것
- 사용자 인터페이스 제공 X
- 다른 구성 요소(ex. Activity)가 서비스를 시작한 다음 실행되도록 두거나 자신에게 바인드하여 상호작용하도록 할 수 있음
- ex) 다른 앱에 있는 동안 백그라운드에서 음악 재생, 액티비티 사이의 상호작용 차단하지 않고 네트워크를 통해 데이터 통신
Broadcast receivers
- 시스템 범위의 브로드캐스트 알림에 응답
- 대다수의 브로드캐스트는 시스템에서 시작(ex. 화면 꺼짐, 배터리 잔량 부족, 사진 캡쳐 등)
- 사용자 인터페이스를 표시하지 않지만, 상태 표시줄 알림을 생성하여 이벤트가 발생했다고 알릴 수 있음
- 다른 구성 요소로의 “게이트웨이”인 경우가 보편적, 극소량의 작업만 수행하도록 구현한 경우가 대부분
Content providers
- 공유된 앱 데이터 집합을 관리
- 데이터는 여러 저장소 위치 중 앱이 액세스할 수 있는 곳이라면 언제든지 저장 가능
- 다른 앱은 콘텐츠 제공자를 통해 해당 데이터 쿼리, 수정 등의 동작 가능
- 앱에 전용이며 공유되지 않는 데이터를 읽고 쓰는 데 유용함
Activating components
- Activities, Services, Broadcast receivers의 경우 인텐트라고 하는 비동기식 메시지가 활성화함
- 인텐트는 각각의 구성요소를 런타임에 서로 바인드(다른 구성요소로부터 작업을 요청하는 메신저)
- 인텐트는 Intent 객체로 생성되며, 컴포넌트를 활성화할지, 컴포넌트의 특정 유형을 활성화할지를 나타내는 메시지를 정의(명시적/암시적)
- 액티비티와 서비스의 경우, 인텐트는 수행할 작업을 정의하며, 작업을 수행할 데이터의 URI를 나타낼 수 있음
- 브로드캐스트리시버의 경우, 인텐트는 단순히 브로드캐스트될 알림을 정의
- 콘텐트프로바이더는 인텐트 활성화 하지 않음
- Content Resolver 요청으로 지정되면 활성화
The manifest file
- 앱 구성요소의 존재 확인을 위해 AndroidManifest.xml 파일 읽음
- 앱은 이 파일 안에 모든 구성 요소를 선언
- 이 외에도 수많은 역할 수행
- 앱이 요구하는 모든 사용자 권한 식별
- 앱이 어느 API를 사용하는지를 근거로 하여 앱에서 요구하는 최소 API 레벨 선언
- 앱에서 필요한 하드웨어, 소프트웨어 기능 선언 (카메라, BT 등)
- 앱이 링크되어야 하는 API 라이브러리(google maps 라이브러리 등)
- 기타 등등
Leave a comment