본문 바로가기
프로그램 개발/안드로이드

[안드로이드] 안드로이드란? what is android

by 코딩히어로 2020. 3. 30.

안드로이드 역사

 

안드로이드란 영어적인 해석으로는

인간과 똑같은 모습을 하고 인간과 닮은 행동을 하는 로봇, 또는 그러한 지적 생명체, 공상 과학 소설 등에 등장하는 인조인간 같은 것이라고 정의되어 있다.

즉 여기서 흔히 우리가 알고있는 안드로이드 로고를 살펴보면 명사적인 해석에서 기인한 것이라 볼 수 있다

즉 여러가지 게임에서도 많이 나오다시피 안드로이드는 인간을 형상화한 로봇을 유래해서 만든 운영체제인 것이다

여기서 재밌는점은 우리가 사용하는 안드로이드 폰을 해석하면 전화가 가능한 작은 로봇이라고 할 수 있겠다

 

이 로봇에는 로봇을 움직이기 위한 프로그램이 필요하고 그에따른 운영체제가 있는데 그중 우리가 프로그램에 사용하는

언어로는 자바와 코틀린 언어 크게 두가지로 분류할 수 있다.

 

안드로이드를 실질적으로 보면 리눅스 커널 위에서 동작하며 프로그램으로 만들어진 App을 통해 실행된다.

 

원래 안드로이드는 독자적인 기업으로 개발되었지만 2005년에 구글에서 인수 한 뒤 2007년 11월에 안드로이드 플랫폼을 휴대용 장치 운영 체제로 무료 공개한다고 발표하였다.

 

안드로이드는 기존에 이클립스라는 코딩툴에 의해 프로그래밍 되었지만 구글에서 인수 후 안드로이드 스튜디오라는 독자 개발 툴을 제공함으로써 지금까지 꾸준히 업데이트를 이어가고 있다.

 

안드로이드의 계층구조

 

안드로이드의 전체 구조는 위 그림과 같이 응용프로그램, 프레임워크, 라이브러리, 런타임, 리눅스 커널의 총 5개의 계층으로 분류되어 있으며 이 구조에 의해 상호 연동하여 프로그램이 작동한다.

 

1. Application

전화통신,웹,이메일,SMS 등 기본 응용프로그램과 개발자들이 만든 프로그램이 동작하는 계층으로 App을 설치하는 Apk파일을 이용하여 설치한다.

 

2. Application Framework

안드로이드 응용프로그램을 개발할 수 있는 환경을 제공하며 기본 응용프로그램과 동일한 API 모두 접근 가능

 

3. Libraries

다양한 응용프로그램 구성요소에서 사용되는 C/C++ 라이브러리의 집합들을 포함하는 계층 상위 계층인 Framework 계층을 통해 개발자들이 접근 가능

 

4. Android Runtime

JAVA 언어의 핵심 라이브러리와 Dalvik이라 불리는 가상기계로 구성된다.

Dalvik 가상기계는 압축된 실행 파일인 dex을 사용하여 스마트폰의 메모리를 효율적으로 사용하게 한다.

 

5. Linux Kernel

리눅스 버젼을 모바일 환경에 맞게 구글에서 수정하여 보안,메모리,프로세스등과 같은 핵심 시스템 서비스를 포함하는 계층이다.

 

안드로이드 버젼의 유례

 

안드로이드 운영체제 버젼의 역사는 2007년 11월 안드로이드 알파 버젼부터 시작된다.

안드로이드는 구글과 오픈 핸드셋 얼라이언스가 개발한 모바일 운영 체제로 최초 베포판 이후 꾸준히 업데이트를 이어가고 있다.

업데이트로는 버그수정과 새로운 기능들을 추가하는 것인데 아이폰에 비해서 기능 변화가 큰 편이다.

사용자에게는 장점일 수 있으나 프로그램 개발자들에게는 꾀나 골치아픈 일이 아닐 수 없다.

2009년 4월부터 각각의 안드로이드 버젼은 디저트 이름을 바탕으로 코드네임을 붙여 개발되고 있다.

각 버젼들은 알파벳 C부터 알파벳 순으로 명명되었으며 A와 B의 명칭은 존재하지 않는다.

1.0에서는 A부터 알바펫 순으로 로봇의 이름을 붙이려 Astro,Boy라는 이름을 내부에서 붙였으나 1.1에서는 이 규칙을 위반한 채 디저트가 좋다는 PM의 취향으로 Petit Four으로 지정하여 지금까지 이어오고 있다.

 

2019.5.7일까지 수집된 안드로이드 점유율 출처 : 구글 위키백과

 

개발자는 최신 OS를 유지할 수 있도록 프로그램을 꾸준히 업데이트 해야 하며 새로운 버젼이 출시됨에 따라

기존 기능들이 충돌하지 않도록 신경 써야 한다.

댓글