(2021년 7월 기준) 안드로이드 OS는 72.83%, IOS OS는 26.35%의 점유률을 보여줍니다.
안드로이드의 주요 개발 언어로는 Java와 Kotlin이 있으며 ios의 개발 언어로는 Object C가 있습니다.
다음은 2021년 7월 기준 전세계 스마트폰 OS 점유률입니다.
링크를 클릭하시면 전세계 스마트폰 OS 점유률을 확인할 수 있습니다.
안드로이드는 2005년 구글에서 인수한 이후 2007년 11월 안드로이드를 무료로 공개한다고 선언하였습니다.
안드로이드 OS는 2008년 9월 20일 최초로 출시되었습니다.
안드로이드는 10버전 이전까지 캔디 또는 과자 등 디저트 이름을 주로 사용하였습니다.
그러나 10버전부터는 기존 네이밍 규칙과 다르게 Android Studio 10을 공식적으로 사용하였으며 현재 Android Studio 11버전까지 출시되었습니다.
자세한 버전별 네이밍 이름은 다음의 안드로이드 공식 사이트를 통해 확인할 수 있습니다.
1. 응용프로그램
2.응용 프로그램 프레임 워크
API란?
- 애플리케이션 프로그래밍 인터페이스 (Application Programming Interface)
- 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 의미합니다.
ex) open API, 공공 API
3. 안드로이드 런타임
java코어 라이브러리와 달빅 가상머신 또는 아트 런타임으로 구성되어 있습니다.
java 가상머신(JVM:Java Virtual Machine)을 사용하지 않고 모바일 환경에 최적화된 달빅 가상머신이나 아트 런타임을 사용합니다.
런타임이란?
- 애플리케이션을 관리하기 위해 특정한 컴파일러나 가상머신이 사용하는 기본 코드 라이브러리 또는 애플리케이션이 실행되고 있는 동안의 동작을 의미합니다.
달빅 가상머신이란?
- 레지스터 머신 형태의 가상머신입니다.
- 적은 메모리 요구사항에 최적화되어 있으며 자바 바이트 코드를 사용하지 않아 자바 가상 머신과 다릅니다.
아트 런타임이란?
- 안드로이드 운영체제 아래 만들어진 런타임 환경의 VM(Virtual Machine)입니다.
- 애플리케이션의 바이트 코드를 네이티브 명령어로 변환을 수행한 후 나중에 장치의 런타임 환경에 의해 실행됩니다.
4. 라이브러리
소프트웨어를 개발할 때 필요한 자원(미리 작성된 코드, 서브루틴(함수), 클래스 등)들의 모임입니다.
반복적인 코드 작성을 없애기 위해 필요한 곳에서 언제든지 호출할 수 있도록 클래스나 함수로 미리 만들어진 것입니다.
5.리눅스 커널
하드웨어 운영과 관련된 저수준의 관리 기능이 들어 있고 주로 메모리 관리, 디바이스 드라이버, 보안 등을 관리합니다.
리눅스는 오픈 소스라는 장점이 있으며 카메라, GPS등 많은 스마트폰 장치를 지원합니다.
커널이란?
- OS의 핵심으로 컴퓨터 자원을 관리합니다.
- 보안, 추상화 자원을 관리합니다.
1.JDK(Java Development Kit)
2.안드로이드 SDK(Android Studio Software Development Kit)
3.Android Studio
4.ADT(Android Development Tools)
안드로이드 개발은 위의 사진과 동일하게 응용 프로그램 개발, 시스템 응용 프로그램 개발,하드웨어 및 커널 개발단계로 구분됩니다.
응용프로그램 단계에서는 Java를 주로 사용하며 시스템 응용 및 하드웨어,커널 제어 개발 단계에서는 C, C++를 사용합니다.
위키피디아 API
위키피디아 달빅 (소프트웨어)
레지스터 기반 vs 스택 기반 vm 정리글