반응형

프로그래밍/안드로이드+코틀린

반응형
반응형

안드로이드 운영체제(Android Operating System)

*Linux Kernel(리눅스 커널)

안드로이드는 리눅스 커널 위에서 작동한다. 리눅스 커널은 threading, 하위 메모리들을 관리 등을 합니다. 

리눅스 커널은 리눅스 운영체제의 중요 구성 요소이며 컴퓨터 하드웨어와 프로세스를 잇는 핵심 인터페이스 입니다.(참고)

 

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

Java API framework에서 하드웨어를 control할 수 있도록 해주는 계층입니다. 예를 들면 카메라, 블루투스 모듈이 있습니다.

 

*Android Runtime(ART)

안드로이드 5.0(API 21)부터는 각 어플리케이션이 자체 프로세스 내에서 ART 인스턴스로 실행됩니다. Android Runtime은 DEX파일을 실행하여 저용량 메모리 기기에서 여러 가상 머신을 실행하도록 작성되었습니다. DEX파일은 Android용으로 특별히 설계된 바이트 코드 형식으로 최소 메모리 공간에 맞게 최적화되어 있습니다. 

 

*Native C/C++ Libraries

HAL, ART 등의 많은 핵싱 Android 시스템 구성 요소와 서비스가 C 및 C++로 작성된 네이티브 라이브러리르 필요로 하는 네이티브 코드를 기반으로 빌드되었습니다. 즉 쉽게 말해서 하드웨어와 통신해야 하는 부분은 C와 C++로 생성되었습니다.(보통 시스템 프로그래밍에는 C가 많이 사용되는 것으로 알고 있습니다. 그 이유는 C 이후의 언어(ex. java, python, kotlin... etc)는 많은 라이브러리들을 load하기 때문에 필요로 하는 메로리가 많습니다. 반면에 C는 요구하는 메모리가 비교적 적기 때문에 C를 사용합니다. 우주선과 같은 곳에도 C언어가 사용된다고 하네요. 참고)

 

*Java API Framework

Android OS의 전체 기능 세트는 Java언어로 작성된 API를 통해 액세스 할 수 있습니다. 

 

*System App

Android는 이메일, SMS 메시징, 캘린더, 인터넷 검색, 주소록 등 다양한 기능과 함께 제공됩니다. 

 

Android Flatform Version

99%이상의 사용자가 젤리빈(API 16) 이상을 사용하기 때문에 그 이하의 플랫폼은 고려하시지 않아도 됩니다. 

 

 

-같이 참고하면 좋은 사이트

* developer.android.com/guide/platform

반응형

+ Recent posts