본문 바로가기

IT/안드로이드

안드로이드에 대한 기초지식

이 게시물은 안드로이드에 대해 설명해보는 취지로 작성해보았습니다.

<안드로이드란 무엇인가?>

 

 

 

 

 

안드로이드는 미국의 검색기업 구글(Google)사에서 스마트폰과 테블릿,기타 휴대기기를 위해 개발한 운영체제입니다. 처음에는 안드로이드라는 단독 기업이었으나, 구글이 안드로이드사를 인수하여 현제는 구글 소속의 개발프로젝트로서 운영되고 있습니다. 

현제 전세계 스마트폰 OS점유율 72.4%(2012 3Q,www.newstomato.com/readNews.aspx?no=318297)를 기록하며 1위를 기록하고 있으며 삼성에서 중소제작사에 이르기까지 안드로이드를 사용한 장비를 출시하고 있습니다.

<안드로이드의 구성>

안드로이드의 작동형태

안드로이드는 리눅스 커널 위에서 돌아가는 가상OS라고 할 수 있습니다. 

윈도우나 맥에서 사용하는 VM머신으로 가상OS를 돌리는 상황을 생각하면 이해하기 편할 겁니다.

비교해보면

리눅스 커널(윈도우,맥OS)위에서 딜빅 가상머신(VM웨어)가 안드로이드(가상OS)를 가동시켜주는 역활을 합니다.

리눅스는 기계를 작동시키는 핵심 시스템이고,안드로이드는 이 핵심 시스템을 사용자가 이해할 수 있게끔 GUI(그레픽 유저 인터페이스, 명령어를 일일이 치지 않고 클릭만으로 프로그램을 작동시킬수 있는 인터페이스)로 만들어주고 사용자가 내린 명령을 리눅스 커널로 전달시켜주는 것입니다. 이 중간과정에 딜빅이라는 가상머신이 번역기능을 수행합니다.

<안드로이드의 장단점>

장점

  • 대부분의 기계에서 OS를 돌릴 수 있다.-리눅스를 기반으로 하기때문에 x86(일반적으로 인텔 CPU환경의 컴퓨터 시스템),ARM아키텍쳐(임베디드,모바일 환경에서 사용되는 CPU환경)를 지원합니다. 개발자가 기계와 커널을 연결(포팅)해주면 안드로이드가 돌아갈 수 있습니다.
  • 개발자의 개발이 용이함-윈도우환경에서 개발툴(SDK)를 지원하므로 iOS처럼 별도 기기를 구입하지 않고도 개발을 시작할 수 있습니다.(iOS는 맥환경에서만 개발툴인 xcode를 배포하였습니다. 해킨토시(일반컴퓨터에서 맥오에스를 돌리는 방식-불법)를 쓰거나 애플컴퓨터를 구매하지 않으면 개발이 불가능합니다.)
  • 오픈소스이다-오픈소스이므로 안드로이드 기본프로그램을 마음대로 수정할 수 있습니다.
  • 그 밖에도 다양한 코덱을 지원하고, 사용자의 튜닝이 용이한 점, 구글 서비스와 메끄럽게 연동되는 점등이 장점이라 할 수 있겠습니다.

단점

 

  • 가상화의 한계-가상머신의 번역을 거치고 나서야 기계로 명령이 갈 수 있기 때문에, 가상머신없이 바로 기계로 명령을 내려주는 iOS보다 느린 편입니다. 또한 메모리 관리가 중구난방으로 이루어져 512메가 램을 탑제하고도 아직도 최신OS를 돌릴 수 있는 아이폰 4와 비교했을때 동일한 크기의 512메가 램을 넣은 갤럭시s는 가장 최신버전의 업데이트를 하고 난 뒤에도 심각하게 버벅됩니다. 베터리가 많이 사용되는 이유도 가상화 기반이기 때문입니다.
  • 보안의 심각한 취약성-오픈소스이기 때문에 누구나 소스를 볼 수 있고, 취약점을 찿아 공격하기 쉽습니다. 아이폰을 대상으로한 바이러스가 대부분 해킹된 폰만을 공약하는 것과 달리 안드로이드를 공약하는 바이러스는 순정상태의 폰도 피해를 입을 수 있습니다.
  •  제조사와 통신사가 넣은 것은 지울 수 없다!-제조사와 통신사가 기본으로 수십여개의 앱을 설치한 다음 루트권한을 잠궈 사용자가 설치하지 못하게끔 한 덕택에, 16기가 휴대폰의 실사용가능공간이 10기가에도 미치지 못하는 상황이 일어납니다.
  • 그 밖에도 앱 UI구성의 허접함, 규격화되지 않은 외부 포트와 그것의 위치, 조약한 음향등이 단점으로 지적되고 있습니다.

<글을 마치며...>

안드로이드에 대해 살펴보았습니다.

조금이나마 읽고계신 분이 안드로이드를 이해하시는데 도움이 되었기를 바랍니다.