본문 바로가기

TIP&TECHNICAL

안드로이드의 버전과 관련된 이야기

커뮤니티에서 안드로이드 버전과 관련된 간단한 정리글을 올렸었는데, 심심해서 그 글에 뼈와 살을 붙혀서 블로그에 포스팅합니다. 버전별로 변천사에 관한 정보는 위키백과를 참고하는게 조금 더 좋을 듯 하네요.

 

어쨌거나, 안드로이드 버전에 관한 재미있는 그저그런 이야기,,, 시작합니다.

 

 

안드로이드는 처음 발표된 후 부터 포스팅하는 시점까지 총 16번의 개선(마이너급 개선 포함)이 이루어진 운영체제입니다. 리눅스를 기반, 자바머신을 통한 운영체제로써 개발이 편하고 오픈소스이기 때문에 개선이 빠르게 이루어지고 있는데 다른 운영체제나 프로그램과는 다른 버전체계를 가지고 있어 흥미롭죠.

 

 

 

 

안드로이드는 1.0을 A로 시작해 메이저급 개선이 이루어질때마다 알파벳 순서대로 디저트의 이름을 따와 닉네임으로 불리고 있는데요. 흔히 말하는 진저브레드나 아이스크림샌드위치 라는 명칭이 바로 이 명칭으로, 각 버전별로 아래의 닉네임을 가지고 있습니다.

 

 

 08년 9월

1.0 Apple Pie

 

 09년 10월 ~ 10년 10월

2.0 ~ 2.1 Eclair

 

 11년 2월 ~ 11년 7월

3.0 ~ 3.2 Honeycomb

 

 11년 10월 ~ 12년 3월

4.0 IceCream Sandwich

 

 09년 2월

1.1 Banana Bread

 

 10년 5월

2.2 Froyo

 

 

 12년 6월

4.1 Jelly Bean

 

 09년 4월

1.5 Cupcake

 

 10년 12월 ~ 11년 8월 

2.3 Gingerbread

 

 

 

 09년 9월

1.6 Donut

 

 

 

 

 ※ 각 버전의 날짜는 SDK 공개 날짜로써 'A ~ B' 는 A에서 B사이를 의미하는것이 아니라 A는 매이저급 개선 SDK 공개날, B는 최종 마이너급 개선 SDK 공개날을 의미합니다.

 ※ 안드로이드 1.1은 공식적인 메이저 업데이트라고는 보지 않습니다.

 

버전에 대해 유심히 살펴보면 알 수 있듯이 안드로이드 1.6에서 바로 2.0으로 뛰어 넘어간 점, 그리고 각 OS 출시일자를 살펴보면 알 수 있듯이 안드로이드 2.3과 안드로이드 3.x 는 동시대의 OS이며 각기 다른 마이너 개선으로 넘어가고 있는 점이 흥미롭게 보이는데요. 이것으로 안드로이드 OS의 버전 표시가 일반적인 형태가 아니라는것을 알 수 있습니다.

 

 

 

버전으로 알아보기

 

X.Y.Z 라면 X

 

안드로이드는 단순히 스마트폰 운영체제를 목적으로 하는 운영체제가 아니라 모든 기기를 타킷으로 하고 있는데 이것을 버전의 앞부분 숫자로 구분하고 있습니다. 위의 표는 이걸 알아차리기 쉽도록 정리하였는데요. 안드로이드 2.X 은 스마트폰 전용 운영체제, 그리고 안드로이드 3.X는 태블릿 전용 운영체제, 안드로이드 4.X은 스마트폰과 태블릿 통합 운영체제로 구분되어지는거죠.

(1.X의 경우 싱글터치나 버튼형 피처폰 전용 운영체제를 목적으로 하는 라인이지만, 현재로써는 안드로이드 베타 라인이라고 보는 것이 옳다고 보고 있습니다.)

 

따라서, 만약 젤리빈 이후 새로운 안드로이드 운영체제라고 발표된 키라임 파이의 경우 지금과 같이 통합 운영체제라면 안드로이드 4.2가 되고, 스마트폰 전용 운영체제가 된다면 안드로이드 2.4, 태블릿 전용 운영체제가 된다면 안드로이드 3.3이 될 것입니다. 혹시 기존 태블릿이나 스마트폰을 타킷으로 하는 OS가 아닌 다른 기기를 타킷으로 하는 OS라면 또 다른 버전대로 시작하겠지요. 물론 현재로써는 4.2가 될 가능성이 높지만요.

 

 

X.Y.Z 라면 Y

 

버전 두번째 자리의 숫자는 안드로이드 매이저 업데이트 단위로 보는것이 알맞습니다. 위의 표에서 보면 초창기부터 X.1 단위로 메이저급 개선이 이루어질때마다 디저트 닉네임을 달고 나오는데요. 극초반은 아닌, 국내에 스마트폰이 보급되기 시작할 무렵인 안드로이드 2.X 버전 때를 생각해 보시면(그냥 간단하게 갤럭시 S를 생각하시면 됩니다.) 쉽게 알 수 있듯이 2.1 이클레어, 2.2 프로요 2.3 진저브레드 순으로 매이저급 개선이 이루어 진 걸 알 수 있죠.

 

간혹 이부분을 착각하시는 분들은 안드로이드 4.1 젤리빈이 안드로이드 4.0 아이스크림샌드위치의 마이너급 개선이 아니냐 라는 생각을 할 수 있는데, 간단하게 이 경우는 2.2 프로요에서 2.3 진저브레드의 업데이트와 같은 경우로써 매이저급 개선이라고 보시는것이 올바릅니다.

 

단, 예외라면 이클레어때 2.0, 2.1 허니컴의 3.0, 3.1, 3.2 가 있는데, 사실 이 차이도 여러 기능의 추가와 개선등이 있지만 대응하는 리눅스 커널의 차이가 없기에 같은 버전대로 묶어져 있습니다. (간단하게 하드웨어적 지원에 큰 변화가 없었다고 보시는것이 이해하기 쉬울 겁니다.)

 

 

X.Y.Z 라면 Z

 

마지막으로 버전 세번째 자리는 안드로이드의 마이너 업데이트 단위입니다. 별다른 기능이 추가되었다거나 변경 사항 없이 운영체제의 안정성을 개선하였다던지, 심각한 버그가 개선되었다던지, 필요에 의한 사소한 기능이 추가되었다던지의 변화가 있을 경우에 올라가는 단위인데요.

 

대표적인 예로써 안드로이드 2.3.6 에서 안드로이드 2.3.7 로써의 업데이트로 구글 지갑 달랑 하나 추가된 경우와 반면에 안드로이드 4.0.3 에서 안드로이드 4.0.4로는 갖가지 버그와 심각한 문제점들이 개선되는 경우를 들 수 있겠네요.



이스터 애그


안드로이드 좀비나, 안드로이드 냥켓 패러디등을 들어보셨나요? 이것들은 안드로이드의 이스터 애그입니다. 별다른 기능은 없지만 안드로이드 내에 숨겨져 있는데요. 설정에서 안드로이드 버전을 빠르게 연타하면 이런 이스터 애그를 만날 수 있습니다. 


안드로이드 좀비는 진저브레드에서, 안드로이드 냥켓은 아이스크림샌드위치에서, 이후 젤리빈의 이스트애그도 있는데, 제가 요전에 SDK로 잠시 살펴보기도 하였지요. 



2012/06/29 - [LETTER] - 안드로이드 4.1 젤리빈의 이스트에그

 


 

 

 

 

 

안드로이드 과 亡

 

흥의 프로요

 

안드로이드 2.1 에서 안드로이드 2.2의 업데이트는 안드로이드 폰들의 성능 향상이 상당했습니다.

 

리눅스 커널이 32로 올라가면서 안드로이드의 가장 기본이 되는 리눅스의 성능이 상당히 개선되었고, 더불어서 안드로이드를 구동시키는 자바머신이 빠른 성능을 이끌어 낼 수 있는 기능을 탑재하게 되면서 간단한 어플리케이션의 성능 향상과 더불어 복잡한 게임류의 어플리케이션도 성능이 향상되었습니다.

 

기본 성능 향상 외에 안드로이드 웹 환경도 상당히 변화되었는데요. iOS에서는 지원하지 않았던 어도비 플래시를 정식으로 지원하기 시작했으며 개선된 자바스크립트 엔진도 탑제하였고, 웹으로의 업로드도 지원되어 PC의 웹 환경과 유사하게 개선되어 더욱 편리해졌구요.

 

 

가장 중요한건, 운영체제 자체의 최적화를 실현해서 이클레어까지의 허접한 메모리 관리, 프로세스 관리등이 개선되었습니다. 그전까지 유저가 운영체제의 성능을 신경써가면서 했던 프로세스를 정리와 가용 메모리 확보등이 번거로움이 프로요부터는 없어졌구요.

 

 

 

망의 허니컴

 

모토로라 XOOM 출시와 같이 출시한 안드로이드 3.0 허니컴은 좋은 인상을 심어주지 못했습니다. 기존 스마트폰 전용 안드로이드 2.X에서는 태블릿의 고해상도와 넓은 화면을 지원하지 못해 만들어진 안드로이드 3.0 허니컴은 아이패드와 나란히 태블릿PC로써의 역활을 할 수 있을 거라고 하였습니다. 그러나 암울했죠.

 

좋은 성능의 태블릿이 출시하지 못한 영향도 컸지만 기존 안드로이드 어플리케이션을 완벽하게 지원하지 못하는 문제점들이 계속해서 발견되었고, 태블릿의 용도에 맞는 기능 지원이 제대로 되지 않았던 문제도 있었습니다. 더불어 UI의 큰 변화로 인해 혼란스러움은 배가 되었습니다.

 

안드로이드 3.1과 3.2로 들어서면서 USB HOST등의 태블릿 용도를 위한, 저해상도 모드등의 호환성 향상을 위한 기능들이 탑제되면서 개선은 되었지만 출시된 태블릿의 성능이 상대적으로 낮으며, 넓은 화면을 활용할 수 있는 태블릿용 어플리케이션의 부제, 그리고 대부분의 기능들이 기존 안드로이드 폰과 겹치면서 허니컴만의 매력을 찾기 힘들어졌습니다.

 

 

 

 

버전 업데이트

 

깨알같이 잦은 버전업

 

사용자의 입장에서는 사후지원의 연장으로 안드로이드 버전 업데이트를 바라는게 당연하지만, 제조사는 버전업을 위해 상당히 많은 노력이 들어가죠. 개선된 안드로이드를 탑제함으로써 기기의 성능이 향상되는건 사용자나 제조사나 같은 바람이겠지만,,,

 

문제는 안드로이드의 업데이트는 그 기간이 상당히 짧은게 특징, 업데이트 된 안드로이드 소스를 받아와서 개발을 하다보면 어느샌가 새로운 버전이 떡하니 나와 있습니다. 물론 사용자들은 더 높은 버전을 원하죠. 제조사 입장에서는 당황스럽게 되고 결국은 새로운 버전을 따라가지 못하게 됩니다.

 

또한 버전이 업데이트 되면서 안드로이드가 점점 더 무거워지는 문제 때문에 하드웨어 사양에 따라서는 최신 버전으로 업데이트가 불가능 한 경우도 있습니다. 대표적으로 갤럭시 S의 아이스크림샌드위치 업데이트 논란이 있죠.

(결국은 벨류팩으로 진저브레드 최종버전에 아이스크림샌드위치 몇가지 기능을 추가하는것으로 끝났습니다.)

 

 

 

커스텀 롬의 무한 업데이트 

 

안드로이드는 리눅스 기반이므로 버전별로 대응되는 리눅스 커널 버전이 있는데 프로요는 리눅스 커널 2.6.32 입니다. 이 커널에 모듈만 추가하면 상위 커널을 흉내낼 수 있기 때문에 결과적으로 프로요 이후 안드로이드를 쉽게 탑제할 수 있게 됩니다.

 

대표적인 예로 커스텀 롬을 들 수 있는데 업데이트가 끊긴 구형 안드로이드 기기를 진저브레드는 물론, 아이스크림샌드위치나 최근들어 젤리빈까지 구동시킬 수 있는 커스텀 롬들이 있습니다. 이것이 바로 2.6.32 커널에 모듈 추가로 상위 커널을 흉내내어 최신 안드로이드 버전과 대응시킨 것이지요.

 

물론 어디까지나 흉내내었기 때문에 완벽하지 않으며, 애초에 최신 안드로이드를 올릴 롬 공간이 기기에 부족하다면 불가능하기도 합니다. 또한 아이스크림샌드위치에서는 커널이 3.0. 대로 올라가 흉내내기로는 부족한 부분이 많아, 기능에 제한이 있는등 여러 문제가 있습니다. 하지만, 원리상으로는 기기의 한계까지, 안드로이드의 기반 자체가 바뀌는등의 업데이트가 있지 않는 한, 커스텀 롬을 이용한 무한 업데이트는 계속 될 것이라고 봅니다.






 

 

 

 

 

 

 

하고싶은 이야기는 많지만, 포스팅 주제와는 조금 벗어나고, 피곤하기도 해서 이만 줄입니다.

 

올바르지 않은 정보나 잘못된 부분은 정정 요청 부탁드립니다. 이상입니다.

 

 

참조 : 위키백과 '안드로이드 변천사' 항목

참조 : 안드로이드 디벨로퍼