안드로이드 아키텍처

이기덕·2022년 4월 3일
0

Android

목록 보기
1/1
post-thumbnail

안드로이드란?

정의는 스마트폰과 태블릭 컴퓨터에서 사용되는 오픈소스 운영체제이다.
androidios는 공통점이 여러 존재하지만, 큰차이점 중 하나는 Design System이 다르다는 점이다.
androidMaterial Design System(AOS)를 사용하고, iosHuman interface Guidelines을 사용한다.

특징

  • 자바 기반이며 현재는 자바와 완벽 호환되는 Kotlin이 이를 대체하고 있다.
  • 안드로이드 운영체제의 핵심 커널은 오픈 소스인 리눅스에 기반
  • 안드로이드 스튜디오라는 전용 개발 도구를 무료로 제공

안드로이드 플랫폼

Android Developer

최신 버전으로 나온 기술 또는 함수들은 공식 문서에서 보고 찾아야한다.

사용하는 언어 목록

  • Java : 안드로이드 출시 부터 현재까지 많이 사용하고 있는 언어이다.
  • Kotlin : 현재 안드로이드에서 주력으로 사용하는 언어.
  • React : React Native라는 프레임워크를 통해 하이브리드(안드로이드, ios 동시 개발)앱을 만들 수 있음.
  • Dart : Flutter 라는 프레임워크를 통해 하이브리드앱을 만들수 있음

안드로이드 플랫폼 아키텍처

안드로이드 주요 구성요소는 위그림을 보면 계층으로 나뉘어지는데 이는 안드로이드 공식문서에서 자세히 확인할 수 있다.

Linux Kernel

보안, 메모리관리, 프로세스 관리, 파일 시스템 관리, 파워 관리, 네트워크 스택, 하드웨어 드라이버 등 하드웨어를 지원.

HAL

Hardware Abstraction Layer(하드웨어 추상화 계층)

  • 상위 수준의 Java API 프레임워크에 기기 하드웨어 기능을 노출하는 표준 인터페이스를 제공
  • HAL은 여러 라이브러리 무듈로 구성되어 있으며, 카메라 또는 블루투스 모듈과 같은 특정 유형의 하드웨어 구성요소를 위한 인터페이스를 구현.
  • 프레임 워크 API가 기기 하드웨어에 액세스하기 위해 호출을 수행하면 Android 시스템이 해당 하드웨어 구성요소에 대한 라이브러리 모듈을 로드

Native C / C++ Libraries

안드로이드 프레임워크에서 필요한 C와 C++ 라이브러리를 제공
안드로이드는 Java와 kotlin 라이브러리만 제공하는 줄 알았는데. 이 부분은 조금 더 공부해볼 필요가 있을 것 같다.

Android Runtime

코어 라이브러리 지원, Dalvik | ART Virtual Machine으로 안드로이드 애플리케이션 실행환경을 제공

Java API Framework

안드로이드 어플리케이션 개발 시 필요한 API를 제공한다.
이 부분이 우리가 개발을 할때 사용했던 API를 제공하는 계층

System Apps

Email 클라이언트, SMS 프로그램, 달력, 지도 브라우저 등의 코어 어플리케이션을 제공한다.

profile
Kotlin

0개의 댓글