안드로이드에 대하여 (APK, 4대 컴포넌트)

용재·2025년 9월 27일
post-thumbnail

APK 란?

APK란, Android Package의 약자로,
안드로이드 앱을 배포, 실행, 설치하기 위해 사용합니다.

APK엔 다음의 파일이 포함됩니다.

  • Manifest 파일
    • 앱의 이름, 권한, 실행 정보 등을 포함
  • Dex 파일
    • 코드를 컴파일하여 만들어진 실행 파일
  • 리소스 파일
    • 이미지, 레이아웃, 문자열 등 앱 UI에 필요한 리소스 파일
  • 라이브러리 파일
    • C/C++ 네이티브 코드
  • 서명 정보
    • 앱의 무결성 검증과 개발자 인증 서명 파일

AAB ..?

AAB는 Android App Bundle의 약자로, 앱의 모듈과 리소스를 묶은 패키지를 말합니다.

2018년 구글에서 APK를 대체하기 위해 만들어졌고,
Playstore에서 2021년 08월부터 APK 대신 AAB만 배포가 가능하도록 변경되었습니다.


AAB는 안드로이드 디바이스에 설치하기 위해,
플레이스토어에서 최적화된 APK를 제작하여 설치합니다.


위에서 살펴본 APK의 내부 파일 중, 리소스 파일은 앱의 크기에 큰 영향을 미칩니다.

여러 국가의 유저를 대상으로 배포하기 위해 방대한 언어셋 파일이 존재할 수 있고,
다양한 해상도의 디바이스를 모두 최적화하기 위해 필요 이상으로 많은 이미지 파일을 APK 파일에 포함해야 합니다.

AAB는 이중 설치할 디바이스에 필요한 리소스만 골라 APK로 만들기 때문에,
앱의 크기를 줄이는데에 매우 큰 효과를 보이고 있습니다.


안드로이드 4대 컴포넌트

안드로이드의 앱을 구성하는 가장 중요한 요소들을
4대 컴포넌트라고 부릅니다.

4대 컴포넌트엔 다음들이 있습니다.

  • Activity
  • Service
  • Broadcast reciever
  • Content provider

Activity

Activity란 쉽게 말하자면 '화면' 입니다.
예를 들어 앱에 로그인하기 위해 표시되는 로그인 화면도 Activity이고,
우리가 앱에 상호작용하는 모든 화면은 Activity로 구성되어있습니다.

앱 개발의 편의성을 위해 Fragment를 통해 화면을 구성하기도 하지만,
Frament 또한 Activity 위에서 구성되는 요소입니다.

Service

Service는 Activity에서 화면에서 필요한 작업 외에
백그라운드에서 작업이 필요한 경우 사용하는 컴포넌트입니다.

음악 재생, 파일 다운로드 등의 작업에서 유용하게 사용됩니다.
또한 앱이 종료되어도 계속 작업 실행이 가능하다는 특징이 있습니다.

Broadcast receiver

Broadcast receiver는 다른 앱이나 시스템에서
데이터를 수신하고 싶을 때 사용하는 컴포넌트 입니다.

디바이스의 인터넷이 끊겼거나 배터리 부족 등의 상황을 감지하기 위해 사용됩니다.

앱이 여러 상황에서도 에러 없이 정상적으로 작동하기 위해
필수적으로 처리해줘야 하는 컴포넌트입니다.

Content Provider

Content Provider는 서로 다른 앱 간의 데이터 공유를 위해 사용하는 컴포넌트입니다.

예를 들어 디바이스에 저장된 연락처를 조회하기 위해 사용할 수 있습니다.

이외에 다른 데이터를 저장한 SQLite, 파일 등에 접근하기 위해
사용할 수 있는 컴포넌트입니다.


이번 포스팅에서는 APK 파일과 안드로이드의 4대 컴포넌트에 대해 포스팅을 진행했습니다.

안드로이드 개발을 하며 항상 마주했던 개념들이기 때문에 앞으로 잘 기억해야할 것 같습니다.

0개의 댓글