Application Fundamentals

Greenddoovie·2021년 12월 10일
0

안드로이드

목록 보기
1/8

Application Fundamentals

Android Language: Kotlin, Java, C++

APK, AAB는 SDK 툴을 이용해서 프로젝트를 Compile 하면 얻을 수 있는 Archive File

APK : Android Package

  • 런타임에 필요로하는 콘텐츠를 포함
  • 안드로이드 기기가 앱 설치하기 위해 사용하는 파일

AAB: Android App Bundle

  • 런타임에 필요로하지 않는 메타데이터를 포함하는 안드로이드 앱 프로젝트의 콘텐츠를 포함
  • Android 기기에서 설치되지 않는 포맷
  • 특정 기기에 필요로하는 코드와 자원들만 포함되게 최적화
  • 구글플레이 배포시 구글 서버에서 디바이스에 최적화된 APK를 생성

Android OS

  • 멀티 유저 리눅스 시스템 (각각의 앱이 다른 유저)
  • 각각의 앱은 리눅스용 고유 User ID 값을 할당받음
  • App에 있는 모든 파일들에 권한을 설정해서 앱에 설정된 userID만 접근할 수 있음

Android Process

  • 각 프로세스는 각자의 VM이 존재
  • 다른 앱으로부터 독립적으로 코드가 작동
  • 엡의 어떤 컴포넌트라도 실행될 필요가 있으면 실행
  • 더 이상 필요하지 않거나 다른앱을 위해 메모리를 복구해야할 경우 종료

최소 권한 원칙

  • 기본적으로 특정 작업을 실행을 위해 필요로하는 컴포넌트만 접근할 수 있음
  • 안전한 환경 조성
  • 다른 앱과 데이터를 공유하는 방법 혹은 접근할 수 있는 방법이 존재
  • 두 개의 앱이 Linux User ID 공유 가능

App components

Four Component: 시스템 혹은 유저가 앱으로 들어갈 수 있는 진입 포인트들을 의미

  • Activity
  • Service
  • Broadcast Receiver
  • Content Provider
주의할 점: 각각 구분되는 목적과 구분되는 생명주기
profile
기초를 이해하면 세상이 다르게 보인다

0개의 댓글