Application Fundamentals

Posted by Eun JongHyeok on December 23, 2020
  1. Security Feature
  2. App Component
  3. etc
  4. Reference

Security Feature

앱과 안드로이드 어플리케이션, 각 영어 표현을 혼용하여 부르도록 하겠습니다.
안드로이드 앱은 자바, 코틀린, C++ 등 프로그래밍 언어를 통해 작성할 수 있습니다. 그리고 Android SDK tools로 데이터, 리소스 파일과 함께 컴파일 되어 APK가 됩니다. 외부에서 파일을 받을 때 .apk 파일을 받으신적이 있으실 것 입니다. 이 파일에는 해당 안드로이드 앱의 모든 구성요소를 포함하고 있고 안드로이드 기기에서 설치 가능합니다.

안드로이드 앱은 다음과 같은 보안 특징을 가지고 있습니다.

  • 안드로이드 운영체제는 각 앱이 서로 다른 유저인 멀티 유저 리눅스 시스템입니다.
  • 기본적으로 안드로이드 운영체제는 각각의 앱에 유닉크한 리눅스 유저 ID를 할당합니다(시스템만 알고 앱은 이를 모릅니다). 그리고 해당 앱에 있는 파일에는 할당된 해당 유저 ID로만 접근이 가능하도록 권한을 세팅합니다.
  • 각각의 프로세스는 각자 VM을 가지고 다른 앱들과 독립적으로 실행됩니다.
  • 기본적으로 모든 앱이 별도의 리눅스 프로세스에서 실행됩니다. 안드로이드 시스템에서 앱의 구성 요소가 실행되어야 할 때 프로세스를 시작하고 더이상 사용되지 않거나 다른 앱에서 메모리를 복구해야 하는 경우 종료합니다.

간단히 설명하면 서로에게 영향을 안주도록 최소한의 권한을 가지고 있습니다. 하지만 다른 앱과 데이터를 공유하고 시스템 서버스(휴대폰 앱에 있는 기본 기능들)에 접근하는 방법도 있습니다. 두 앱이 같은 같은 리눅스 유저 ID를 공유하도록 설정하거나 System Permission을 통해 사용자가 앱에 권한을 줄 수 있습니다.

이후 어떤 기능을 사용할 때 어떤 권한을 주어야 할 일이 있을 것입니다.

App Component

etc

Reference

안드로이드 개발자 사이트


Android

← Previous Post Next Post