[Android] 애플리케이션의 기본항목

Jinny·2021년 1월 17일
0

Android

목록 보기
1/32
post-thumbnail

🚩Android

안드로이드는 구글에서 만든 스마트폰용 운영체제입니다.
Android는 리눅스(Linux)를 기반으로 제작되었고, Kotlin, Java, C++ 언어를 사용하여 작성할 수 있습니다.

🚩APK

Android SDK 도구는 모든 데이터 및 리소스 파일과 함께 코드를 컴파일하여 하나의 APK를 만듭니다.

  • Apk란?
    '안드로이드 응용 프로그램 패키지'로 .apk 형태의 아카이브 파일입니다.
  • 아카이브 파일이란?
    대부분의 경우, 압축된 파일을 의미입니다.

한 개의 APK 파일에는 Android 앱의 모든 콘텐츠가 들어 있으며, Android로 구동하는 기기가 앱을 설치할 때 바로 이 파일을 사용합니다.

🚩앱의 구성요소

앱 구성 요소는 Android 앱의 필수적인 기본 구성 요소입니다.

앱 구성 요소에는 네 가지 유형이 있습니다.

  • 액티비티
  • 서비스
  • Broadcast Receiver
  • 콘텐츠 제공자

▪ 액티비티

액티비티는 사용자 인터페이스를 포함한 화면 하나를 나타냅니다.

예를 들어서 페이스북의 경우 새로운 피드를 표시하는 액티비티가 하나 있고, 글을 작성하는 액티비티가 또 하나, 그리고 친구 목록을 보는 데 쓰는 액티비티가 또 하나 있을 수 있습니다.
이러한 여러 액티비티가 함께 작동하여 해당 앱에서 짜임새 있는 사용자 환경을 구성하고 있지만 각자 서로 독립되어 있습니다.

따라서 앱에서 허용할 경우 다른 앱이 이런 액티비티 중 하나를 시작할 수 있습니다. 예를 들어 카메라 앱에서 페이스북 앱 안의 액티비티를 시작하여 사용자가 새 글을 작성하고 사진과 함께 공유하게 할 수 있습니다.

액티비티는 시스템과 앱의 주요 상호작용을 돕습니다.


▪ 서비스

서비스는 백그라운드에서 실행되는 구성 요소로, 오랫동안 실행되는 작업을 수행하거나 원격 프로세스를 위한 작업을 수행합니다.

서비스는 사용자 인터페이스를 제공하지 않고 (화면x) , 시작된 서비스는 작업이 완료될 때까지 해당 서비스를 계속 실행하라고 시스템에 지시합니다.

두 가지 유형에 따라 시스템이 서비스를 처리하는 방식을 변경합니다.

  1. 음악 재생처럼 사용자가 바로 인식할 수 있는 작업
    : 앱은 사용자에게 이와 관련된 알림을 보내고, 음악 재생을 포그라운드로 옮기라고 시스템에 지시합니다.
    시스템은 이 서비스의 프로세스가 계속 실행되도록 많은 노력을 기울이게 됩니다. 이 서비스가 사라지면 사용자가 불만을 느낄 것이기 때문입니다.

  2. 사용자가 실행되고 있음을 직접 인식할 수 없는 작업 (데이터 동기화)
    : 사용자가 직접 인식하기 어려운 시스템은 좀 더 자유롭게 프로세스를 관리할 수 있습니다.
    사용자와 좀 더 직접적인 관련이 있는 작업에 RAM이 필요할 경우 이 서비스를 우선 종료할 수도 있습니다 (그 후, 나중에 다시 시작).


▪ Broadcast Receiver

Broadcast Receiver는 시스템이 이벤트를 앱에 전달하도록 지원하는 구성 요소로, 앱이 시스템 전체의 브로드캐스트 알림에 응답할 수 있게 합니다.

Broadcast Receiver도 앱으로 들어갈 수 있는 또 다른 명확한 진입점입니다.
대다수의 Broadcast는 시스템에서 발생합니다. 배터리가 부족하다거나 사진을 캡처했다고 알리는 브로드캐스트가 대표적입니다.
Broadcast Receiver는 사용자 인터페이스를 표시하지 않지만(화면x), 상태 표시줄 알림을 생성하여 사용자에게 브로드캐스트 이벤트가 발생했다고 알릴 수 있습니다.
그저 다른 구성 요소로의 게이트웨이인 경우가 더 보편적이고, 극소량의 작업만 수행하도록 만들어진 경우가 많습니다.

Broadcast Receiver는 BroadcastReceiver의 하위 클래스로 구현되며 각 브로드캐스트는 Intent 객체로 전달됩니다.


▪ 콘텐츠 제공자

콘텐츠 제공자는 모든 영구 저장 위치에 저장 가능한 앱 데이터의 공유형 집합을 관리합니다.

다른 앱은 콘텐츠 제공자를 통해 해당 데이터를 받거나, 허용할 경우에는 수정도 가능합니다.
예를 들어 Android 시스템은 사용자의 연락처 정보를 관리하는 콘텐츠 제공자(ContactsContract.Data)를 제공합니다. 이를 쿼리하여 특정한 인물에 대한 정보를 읽고 쓸 수 있습니다.
콘텐츠 제공자는 앱 전용이어서 공유되지 않는 데이터를 읽고 쓰는 데도 유용합니다.
이는 ContentProvider의 하위 클래스로 구현되며, 다른 앱이 트랜잭션을 수행할 수 있도록 활성화하는 표준적인 API 집합을 구현해야 합니다.


출처 : https://developer.android.com/guide/components/fundamentals?hl=ko

profile
신입 개발자👩‍💻

0개의 댓글