"안드로이드"의 두 판 사이의 차이
2016081033 (토론 | 기여) |
잔글 |
||
(사용자 6명의 중간 판 67개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | + | [[파일:안드로이드 로고.png|썸네일|200픽셀|'''안드로이드'''(Android)]] | |
− | [[안드로이드 | + | [[파일:안드로이드 글자.png|썸네일|300픽셀|'''안드로이드'''(Android)]] |
− | [[안드로이드 | ||
− | |||
− | + | '''안드로이드'''(Android)는 2003년 '''[[앤디 루빈]]'''(Andy Rubin)이 [[리눅스]](Linux)를 기반으로 만든 [[오픈소스]] [[운영체제]]이다. "인간을 닮은 로봇"이라는 뜻으로, 2005년 7월에 [[구글]]이 안드로이드 회사를 인수하여 전 세계에 무료로 보급했다. 이때부터 '''구글 안드로이드'''(Google Android)라고 불린다. [[삼성전자㈜]]<!--삼성전자-->, [[LG]], [[화웨이]], [[샤오미]] 등 전 세계 [[스마트폰]]의 운영체제로 사용되고 있다. | |
− | |||
− | |||
− | |||
− | == | + | == 개요 == |
− | + | 안드로이드는 [[스마트폰]]을 비롯한 [[모바일기기]]를 위한 [[운영체제]], [[미들웨어]], [[사용자 인터페이스]]와 표준 응용 프로그램인 [[웹 브라우저]], 이메일 클라이언트, SMS, MMS 등을 포함하고 있는 소프트웨어 스택이자 모바일 운영체제이다. 안드로이드는 개발자들이 [[자바]](Java) 언어로 응용 프로그램을 작성할 수 있게 개발했으며, [[컴파일]]된 [[바이트 코드]]를 구동할 수 있는 런타임 [[라이브러리]]를 제공한다. 또한, 안드로이드 소프트웨어 개발 키트 [[SDK]]를 통해 응용 프로그램을 개발하는 데 필요한 각종 도구와 [[API]]를 제공한다. 안드로이드는 다양한 버전으로 출시되기 시작해 버전마다 디저트의 이름이 붙어있다. 안드로이드는 6개월~12개월에 한 번씩 업데이트가 진행되고 구글에서 계속 개발 중이며, 안드로이드 업데이트는 새로운 기능 추가나 오류를 수정할 때 구성이 된다. 오픈소스는 안드로이드 오픈소스 프로젝트에서 사용할 수 있다. | |
− | |||
− | |||
− | |||
− | |||
− | ==특징== | + | == 등장 배경 == |
− | * | + | 안드로이드는 2003년에 [[앤디 루빈]](Andy Rubin)이 [[리눅스]]를 기반으로 안드로이드(Android) 운영체제를 개발하여 설립된 휴대용 단말기 소프트웨어를 개발하는 회사명이었다. 그 당시에는 디지털카메라의 보급이 활발했던 시대였고, 디지털카메라의 운영체제를 개발하기 위한 회사였다. 하지만, 휴대폰에 점점 카메라를 접목하기 시작하며 디지털카메라의 보급이 주춤해지자 이에 발맞춰 스마트폰의 운영체제를 개발하는 회사가 되었다. 이후, 2년 만에 [[구글]]이 앤디 루빈이 세운 안드로이드사를 인수했다. 구글에서 서비스하는 [[유튜브]](YouTube), [[구글 맵]](Google Map) 등의 서비스와 함께 안드로이드 스마트폰은 무한한 확장과 가능성이 열려있다. 2007년 11월 5일에는 전 세계 각국의 이동통신 관련 회사 연합체인 오픈 핸드셋 얼라이언스(OHA)가 리눅스 커널 2.6에서 빌드된 첫 번째 [[모바일기기]] 플랫폼 결과물인 안드로이드를 발표했으며, 2008년 10월 21일에는 안드로이드가 [[오픈 소스]]로 선언되었다.<ref>콘파냐, 〈[https://thrillfighter.tistory.com/326 안드로이드(Android) 정리 시작 배경과 역사]〉, 《티스토리》</ref> |
− | * | + | |
− | *[[ | + | == 특징 == |
− | *[ | + | 안드로이드 특징에는 애플리케이션 [[프레임워크]](Application Framework)로 사용자가 개발에 사용할 다양하며 확장 가능한 [[컴포넌트]]를 제공해준다. 이것은 사용자가 화면을 구성할 때, 복잡한 기능을 구현할 때 편리하게 구현이 가능하도록 도와준다. [[달빅 가상머신]](Dalvik VM)은 자바 가상머신과 유사한 가상머신으로 안드로이드 애플리케이션을 실행하기 위한 레지스터 머신 형태의 가상 머신이다. 모바일 플랫폼과 같은 작은 메모리 요구 사양에서도 무리 없이 동작하도록 최적화되어있으며 하나의 장치에서 여러 가상머신 [[인스턴스]](instance)가 동작하도록 설계되어 있다. [[오픈소스]](OpenSource)인 웹 킷 엔진(WebkitEngine)을 기본적으로 가지고 있어서 웹브라우저 애플리케이션에서 통합브라우저를 사용한다. 사용자 인터페이스 제공을 위한 프레임워크를 지원한다. 다양한 그래픽 표현을 위한 2D 및 3D 라이브러리를 제공한다. 효율적인 데이터 저장이나 검색할 수 있도록 [[에스큐엘 라이트]](SQLite)를 통한 관계형 [[데이터베이스]] 라이브러리를 제공한다. 멀티미디어 환경에 걸맞게 동영상, 오디오, 이미지 포맷을 지원한다. 개방형 플랫폼으로 다양한 통신환경을 지원한다. 해외에서 많이 사용되는 통신환경인 [[와이파이]], [[블루투스]] 등 비 휴대전화 무선 통신 환경도 지원한다. 마지막으로, [[디바이스]] 에뮬레이터를 이용하여 안드로이드 디바이스가 없어도 개발이 가능하다. 디바이스와 관련된 디버깅 툴 분석 툴 들을 제공하여 애플리케이션 개발 시 편리한 환경을 제공해준다는 특징들이 있다.<ref>모빌리티, 〈[https://automobility.tistory.com/381 (안드로이드 #2)안드로이드의 특징 9가지]〉, 《티스토리》, 2017-06-06</ref> |
− | * | + | |
− | + | === 구조 === | |
− | + | *'''커널 계층'''(Kernel Layer): 안드로이드 계층 최하단에 있으며, 시스템 전체의 중심역할을 한다. 사용자나 개발자가 이쪽 계층에서 작업한다거나 상호작용할 일은 없다. 커널에서 담당하는 일은 하드웨어 추상화, 메모리 관리, 보안 설정, 전원관리, 다른 하드웨어 장치 [[드라이버]] 관리, [[네트워크]] 시스템 관리가 있다. 안드로이드의 버전과 함께 커널의 버전도 업데이트된다.<ref name="찰스">Charlezz, 〈[https://www.charlezz.com/?p=792 안드로이드의 구조]〉, 《개인 사이트》, 2018-10-11</ref> | |
− | * | + | |
− | + | *'''네이티브 라이브러리 계층'''(Native Libraries Layer): 안드로이드는 상대적으로 작은 용량의 [[주기억장치]]와 저전력의 [[중앙처리장치]](CPU)가 탑재된 기기에서 동작하기 때문에 이러한 기기에 최적화된 원시 코드로 컴파일한다. libc 또는 libm과 같은 기본적인 라이브러리는 특히 메모리 소비가 적기 때문에 안드로이드에 적합하다. 이 계층의 [[서피스 매니저]](Surface Manager)는 프레임워크 계층의 [[윈도우 매니저]](Window Manager)의 화면 접근에 대해 처리를 하기도 하고, [[미디어 프레임워크]](Media Framework)는 오디오 및 비디오 코덱을 포함하며 각종 음악, 동영상, 사진을 포함한 각종 미디어처리를 담당한다. 그 외에도 다양한 오픈소스 라이브러리들을 포함한다.<ref name="찰스"></ref> | |
− | + | ||
− | + | *'''안드로이드 런타임'''(Android Runtime): 안드로이드의 런타임을 이해하기 위해서는 자바의 가상머신을 알아야 한다. 일반적인 컴파일 언어는 중앙처리장치의 [[아키텍처]]와 플랫폼의 환경에 맞추어 기계어로 컴파일한다. 간단히 말하면, 사람이 작성한 프로그램을 중앙처리장치가 알아들을 수 있는 언어로 바로 번역하여 저장하는 것이다. 이 중앙처리장치 간의 서로 다른 언어가 아키텍처에 해당한다고 보면 된다. 그러나 자바의 경우는 기본적으로 한가지 중앙처리장치의 아키텍처나 환경에 맞추는 것이 아닌 [[바이트 코드]]라는 것으로 컴파일되며, 이를 실행하기 위해서는 자바 가상 머신이 필요하다. 이렇게 하는 이유는 자바는 바이트 코드 하나만으로 여러 가지 아키텍처나 플랫폼에서 작동할 수 있도록 하는 것이 목표이기 때문이다. 아키텍처와 플랫폼에 맞는 가상머신만 있다면 하나의 실행 파일만 가지고도 각종 장치에서 쓸 수 있다.<ref name="찰스"></ref> | |
− | + | ||
− | * | + | *'''애플리케이션 프레임워크 계층'''(Application Framework Layer): 애플리케이션 프레임워크 계층부터는 자바로 작성되며 기본 네이티브 라이브러리와 안드로이드 [[런타임]]을 추상화한 계층이다. 안드로이드 애플리케이션은 자체 런타임에서 실행되며 [[액티브]](Active)와 같은 여러 구성 요소로 구성된다. 이러한 컴포넌트는 다른 애플리케이션과 상호 작용할 수 있다.<ref name="찰스"></ref> |
− | *[[ | + | |
− | * | + | *'''애플리케이션 계층'''(Applications Layer): 안드로이드 구조 [[스택]](Stack)의 최상위 계층에 있으며, 안드로이드기기를 사용하는 대부분의 사용자가 이 계층과 상호작용한다. 예를 들면, 전화 걸기, [[웹 브라우저]], [[카카오톡]], 게임 등 개발자는 애플리케이션 프레임워크를 이용하여 애플리케이션을 개발한 다음 배포하여 설치되는 안드로이드 응용 프로그램 패키지(APK)가 애플리케이션 계층에 속하게 된다.<ref name="찰스"></ref> |
− | *[[ | + | |
+ | ===장단점=== | ||
+ | 안드로이드는 개발자의 입장에서 전 세계에서 가장 많이 쓰는 [[자바]] 를채택함으로써, 자바를 개발하던 개발자들이 안드로이드의 개발 환경에 관심을 가지게 하는 장점이 있다. 또한, 안드로이드 개발환경인 [[PC]]를 가지고 있다면 모두 무료 배표이다. 개발자 등록비용이 1년에 99달러인 아이폰의 경우와 달리 안드로이드 개발자 등록 비용은 단지 25달러이며, 1회만 등록하면 더 이상의 비용은 필요 없다. 안드로이드는 플랫폼의 통일화가 불가능하다는 점에서 모든 단점이 발생한다. 플랫폼이 다 다르기 때문에 네이비브 코드(native code) 상의 하드웨어적 접근은 불가하다. 대신 [[달빅]](Dalvic)이라는 JVM 같은 [[가상 머신]] 을 둬서 이를 극복했다. 하지만 이 때문에 속도에 민감한 스마트폰에 치명적인 결과를 초래하였다. 또한, 다른 단점은 안정 단계에 들어선 [[아이오에스]](IOS) 와 달리 안드로이드는 많은 문제점을 가지고 있다. 또한 버전별, 제조사 별로 호환되지 않는 애플리케이션이 존재하며 이는 사용자들에게 혼란을 준다. 안드로이드의 개발 환경구축은 아이폰보다 복잡하다.<ref>준, 〈[https://june83.tistory.com/entry/iPhone%EA%B3%BC-Android-%EA%B0%9C%EB%B0%9C%EC%9D%98-%EC%9E%A5%EB%8B%A8%EC%A0%90 iPhone과 Android 개발의 장단점]〉, 《티스토리》, 2011-01-17</ref> | ||
+ | |||
+ | ===라이브 캡션=== | ||
+ | 라이브 캡션 기능은 유튜브에서 설정하면 하단 부분에 텍스트가 표시되는 등의 자동 자막 기능이다. 이것은 좋은 기능인 동시에 많은 사람에게 도움을 줄 수 있다. 이 기능은 선천적 또는 후천적인 다양한 상황으로 인해 불편함을 겪고 있는 지구상의 수많은 청각 장애를 가진 분들에게 도움이 된다. 구글 안드로이드 10에서는 기본적으로 모든 애플리케이션에서 비디오, 팟캐스트, 음악 등 오디오가 있다면 자동으로 [[캡션]] 해 자막을 만들어 준다.<ref>싱글싱글life, 〈[https://m.blog.naver.com/PostView.nhn?blogId=gkrwja88&logNo=221679904705&proxyReferer=https:%2F%2Fwww.google.com%2F 구글 안드로이드 10의 새로운 기능 10가지 알아보기]〉, 《네이버 블로그》, 2019-10-16</ref> | ||
+ | |||
+ | ===NFC=== | ||
+ | [[NFC]]는 핸드폰 안에 들어가는 [[RFID]] 기술의 총체다. RFID는 무선 주파수를 이용해 통신하는 기술인데, 쉽게는 교통카드라고 보면 된다. 버스에 있는 교통카드를 읽는 장치에 티머니 등의 교통카드를 갖다 대면, 리더기가 교통카드를 인식하고 요금이 결제된다. 간단해 보이는 이 동작의 순간에 여러 가지 일들이 발생한다. 리더기에서 나온 전자기장이 교통카드에 전원을 공급한다. 교통카드는 순간적으로 [[부팅]]을하고 리더기와 통신을 한다. 이 과정에서 교통카드는 유효성 여부도 체크하고 잔액을 차감하는 일도 한다. NFC는 여기서 리더기의 역할을 한다. NFC를 지원하는 안드로이드 휴대폰에 티머니 등의 교통카드를 갖다 대면, 뭔가 인식이 되는 듯한 동작이 보인다. 안드로이드 단말에 들어가는 NFC 칩이 교통카드를 인식한 것인데, 교통카드 외에도 몇 가지 종류의 RFID 태그를 읽을 수 있다. NFC의 기능은 크게 카드 모드 태그 읽기/쓰기 모드 [[피투피]] 모드 등 크게 세 가지로 구분한다. 카드 모드는 NFC 단말이 스마트카드처럼 동작한다. 태그 읽기/쓰기 모드는 NFC 단말이 NFC 태그로부터 데이터를 읽거나, NFC 태그에 데이터를 쓴다. 피투피 모드는 NFC 단말이 다른 NFC 단말로부터 데이터를 읽어온다. NFC가 대중에게 알려지기 시작한 것은 안드로이드 휴대폰에 NFC 기능이 추가되면서부터다. 정확하게는 안드로이드 버전 2.3부터 NFC 기능이 추가됐다. 그 후로 몇 번의 버전 업에 따라 NFC [[API]]에도 변화가 있었다.<ref>JJun, 〈[http://blog.daum.net/creazier/15309926 Android NFC]〉, 《다음 블로그》, 2013-08-05</ref> | ||
+ | |||
+ | ===호환성=== | ||
+ | 호환성은 크게 기기 호환성과 애플리케이션 호환성으로 나뉜다. 안드로이드는 오픈 소스 프로젝트이기 때문에 하드웨어 제조업체들이 안드로이드 운영체제를 탑재한 [[디바이스]] 를 만들 수 있다. 안드로이드 실행환경에서 실행되도록 만들어진 애플리케이션을 디바이스에서 실행시킬 수 있다면 그 디바이스는 안드로이드와 호환된다. 라고 표현한다. 안드로이드 실행환경은 [[안드로이드 호환성 프로그램]](Android compatibility program)에서 구체적으로 정의되어 있으며, 안드로이드와 호환되고자 하는 모든 디바이스는 [[호환성 테스트 수트]](Compatibility Test Suite, CTS)를 통과해야 한다. 애플리케이션 개발자들은 어떤 디바이스가 안드로이드와 호환되고 호환되지 않는지에 대해 고민할 필요가 없다. 오직 안드로이드와 호환되는 디바이스에만 구글플레이 스토어가 설치되어 있기 때문이다. 따라서 안드로이드와 호환되지 않는 디바이스에서는 애플리케이션을 설치할 수 없기 때문에 개발자는 안심해도 된다. 그러나, 애플리케이션 개발자들은 다양한 디바이스 환경에 대해 애플리케이션이 호환되도록 노력해야 한다. 안드로이드와 호환되는 디바이스의 종류가 상당히 많고 그 중 애플리케이션이 필요로 하는 일부 기능이 없는 디바이스도 없을 수 있기 때문이다. 예를 들어, 내 앱의 핵심 기능이 [[나침반 센서]] 를 이용하고 있다면, 내 앱은 나침반 센서를 내장하고 있는 디바이스에서만 호환된다.<ref>개발자 김태우, 〈[https://android-kr.tistory.com/6 기기 호환성 (Device Compatibility)]〉, 《티스토리》, 2015-05-15</ref> | ||
+ | |||
+ | === 보안 === | ||
+ | 미국표준기술연구소가 공개한 정보에 의하면 보안 취약점 1위에 안드로이드 운영체제가 선정되었다. 오픈소스 운영체제인 데다가 전 세계 가장 많은 사용자 수를 가지고 있는 스마트폰에 적용되어 있어 많은 공격에 노출되어 있다는 문제가 있다. 전 세계 [[모바일]] 운영체제 기준 70% 이상을 점유하고 있는 안드로이드의 단점 중 하나이다. 또한, 더욱 안전하게 사용하기 위해서 업데이트의 빠른 설치가 필요하다. 운영체제 및 애플리케이션의 버그가 발견되거나 보안 취약점이 발견되면, 이를 해결하기 위한 업데이트가 이루어진다. 업데이트는 자동으로 진행되도록 기본 설정되어 있어서 안드로이드 기본 설정을 손대지 않고 쓰고 있다면 크게 신경 쓰지 않아도 되지만, 무언가 사용자의 확인 없이 자동으로 진행되는 것이 싫어서 자동 업데이트를 꺼놨다면, 자주 업데이트를 확인하거나 자동 업데이트로 설정을 변경해두어야 한다. 운영체제의 보안 업데이트는 제조사마다 조금씩 다를 수 있지만, 설정의 업데이트 센터 등을 찾아 들어가면 된다. 애플리케이션의 업데이트는 구글 [[플레이 스토어]]의 메뉴에서 설정 항목 안에 있는 '앱 자동 업데이트'에서 변경할 수 있다. 또한, 구글플레이 프로텍트를 사용하는 방법이 있다. 플레이 프로텍트는 구글이 직접 제공하는 보안 기능으로 애플리케이션과 기기에 유해한 문제가 있는지에 대해 자동으로 확인해 위험성을 빠르게 알려준다. 플레이 프로텍트를 활성화해놓으면 구글 플레이 스토어에서 애플리케이션을 내려받을 때 애플리케이션의 안정성을 미리 검사한다. 이미 설치된 애플리케이션도 유해한 동작이 있는지 확인하며, 구글 플레이 스토어를 거치지 않고 다른 소스를 통해 설치된 애플리케이션의 위험성도 체크한다. 플레이 프로텍트의 설정은 구글 플레이 스토어의 메뉴에서 플레이 프로텍트를 선택한 후 화면 오른쪽 위에 있는 톱니 모양의 설정 메뉴로 들어가 '플레이 프로텍트로 앱 검사' 항목을 활성화하면 된다. '유해 앱 감지 기능 개선' 기능도 활성화하면 알 수 없는 애플리케이션을 구글에 전송해 유해감지 기능 개선에 도움을 줄 수도 있다. 이외에도, 안전하게 안드로이드를 사용하기 위한 방법은 다음과 같다.<ref name="취약">원수연 기자, 〈[https://news.appstory.co.kr/howto13043 보안 취약점 '1위' 안드로이드, 안전하게 쓰려면?]〉, 《앱스토리》, 2020-03-25</ref> | ||
+ | |||
+ | * '''신뢰도 높은 앱스토어 사용''' | ||
+ | : 애플리케이션의 유해성은 제조사가 책임져야 하지만, 유해한 애플리케이션을 만들어 개인의 이득을 도모하려 하는 것은 애플리케이션 스토어가 이를 책임지고 막아야 한다. 그렇기 때문에 앱스토어에 애플리케이션을 등록하려면 심사과정을 거치게 되며, 그 과정에서 유해한 애플리케이션이 걸러진다. 아이폰은 애플리케이션을 내려받아 설치할 방법은 [[애플]](Apple)이 직접 운영하는 [[앱스토어]](App Store)만을 이용해야 한다. 하지만 구글은 직접 운영하는 구글 플레이 스토어 외에도 통신사나 단말기 제조사가 운영하는 앱 스토어도 있고, 그 이외의 업체에서 운영하는 스토어도 있다. 그중에서 보안에 취약한 불법적인 스토어도 있기 때문에 가급적 구글 플레이 스토어나 통신사 운영 스토어와 같이 신뢰할 수 있는 앱스토어만 이용하는 것이 좋다. 스토어를 거치지 않고 확장자 apk 파일을 [[온라인]]에서 직접 내려받아서 설치할 수도 있는데, 이렇게 하려면 출처를 알 수 없는 애플리케이션 설치를 허용해야 한다. 앱스토어를 거치지 않은 애플리케이션은 [[악성코드]]나 [[바이러스]] 등이 숨겨져 있을 확률이 높고 공격에 취약할 가능성이 높기 때문에, 기본적으로 출처를 알 수 없는 애플리케이션 설치는 허용되지 않음으로 설정되어 있다.<ref name="취약"></ref> | ||
+ | |||
+ | * '''보안 애플리케이션 설치''' | ||
+ | : 인터넷 검색을 하다 보면 사용자도 모르게 [[피싱]] 사이트에 접속할 수도 있고, 악성코드가 들어 있는 파일을 내려받거나 실행할 수도 있다. [[PC]]에서는 이런 상황을 대비해 [[안티바이러스]] 프로그램 등을 설치해 쓰는데, 스마트폰도 V3 모바일 시큐리티나 알약 M 등 안티바이러스와 보안 관련 애플리케이션을 다운받아 사용할 수 있다. 이런 보안 애플리케이션들은 기본적으로 바이러스와 악성코드 차단 및 제거 기능뿐만 아니라 악성 [[URL]]을 실시간으로 감시해 [[스미싱]] 피해를 예방하기도 하며, 공용 와이파이에서도 개인정보 유출 등의 불안 없이 안심하고 사용할 수 있다. 부가기능으로 메모리 관리와 속도 향상 등의 유용한 기능도 제공한다.<ref name="취약"></ref> | ||
+ | |||
+ | == 버전 == | ||
+ | === 안드로이드 10 === | ||
+ | 2019년 9월에 출시한 안드로이드 10은 디저트 이름 대신 간단한 번호로 이름을 붙인 첫 번째 버전이다. 안드로이드 10 버전에서 구글은 안드로이드 제스처 인터페이스를 완전하게 수정했다. 탭 할 수 있는 뒤로 버튼을 빼고 스와이프 방식의 시스템 내비게이션을 적용했다. 내부를 들여다보면 안드로이드 10에는 핫픽스 스타일 업데이트를 위한 새로운 설정 기능이 들어갔다. 이를 이용하면 더 작은 규모의 문제를 수정하는 [[패치]]를 더 빠르고 지속해서 내놓을 수 있다. 이는 [[소프트웨어]] 자체적으로도 중요한 개선이다. 예를 들어, 개선된 승인 시스템 덕분에 애플리케이션이 언제 어떻게 위치 데이터에 [[액세스]](Access)하는지를 더 정확하게 사용자가 제어할 수 있다. 기기의 작동 내역을 추적하는 데 사용할 수 있어 특정 기기 사용자를 보호하는 것도 가능하다. 이외에도 안드로이드 10에는 다양한 개선사항이 추가됐다. [[시스템]] 전반에 걸친 다크 테마와 화면 위 버튼을 탭 하는 것으로 산만하게 하는 애플리케이션의 방해를 최소화하는 포커스 모드(Focus Mode), 오랫동안 미뤄왔던 공유 메뉴 등이다. 새로운 [[라이브 캡션]](Live Caption) 기능을 지원하기 위한 기반도 추가됐다. 이를 이용하면 비디오, 팟캐스트, 일반적인 음성 녹음 등 휴대폰에서 재생되는 모든 미디어에 대한 캡션을 생성한다. 단 이 기능을 소프트웨어 공개 시점에서 당장 사용할 수는 없다.<ref>이안이아빠, 〈[https://daystudy.tistory.com/358 한눈에 보는 안드로이드의 역사]〉, 《티스토리》, 2020-04-01</ref> | ||
+ | |||
+ | === 안드로이드 11 === | ||
+ | 안드로이드 11에서는 개인정보 보호 및 보안을 최우선으로 유지하면서 사용자가 최신 혁신을 활용할 수 있도록 집중하고 사용자가 중요한 데이터 및 파일에 대한 액세스를 관리할 수 있도록 여러 가지 새로운 기능을 추가했다. 안드로이드 11은 개발자들에게 폴더, [[5G]] 개선, 통화 차단 [[API]], 새로운 미디어 및 카메라 기능, [[머신 러닝]] 등과 같은 애플리케이션을 위한 수많은 새로운 기능을 제공한다. 5G 이동통신은 전 세계의 더욱 많은 사용자에게 지속해서 빠른 속도와 낮은 대기 시간을 제공한다. 5G를 사용하면 4K 비디오 스트리밍과 고해상도 게임 자산 로딩 같은 와이파이 애플리케이션 경험을 모바일 사용자에게 확장하거나 특별히 설계된 새로운 경험을 구축할 수 있다. 또한, 기존 연결 API 개선 및 업데이트를 통해 5G의 향상된 속도를 활용할 수도 있다. 새로운 스크린 타입은 구글이 안드로이드 9 때부터 디스플레이 [[컷아웃]](cutout) API를 통해 전면 카메라나 센서 등 디스플레이 일부 영역이 가려지는 문제에 대한 애플리케이션 최적화를 지원했다. 안드로이드 11에서는 기존 디스플레이 컷아웃 API를 사용해 [[핀홀]](Pinhole) 및 [[워터 폴]](Waterfall) 스크린 화면을 관리할 수 있으며, 원하는 경우 새 API를 사용해 애플리케이션이 가장자리를 포함한 전체 워터 폴 화면의 상호 작용을 관리할 수 있다. | ||
+ | |||
+ | 안드로이드 11의 사용자와 대화하는 기능으로, 스마트폰에서 가장 중요한 일은 친구 및 동료와 대화하는 것이다. 안드로이드 11에서는 개발자가 더 깊은 대화 경험을 만드는 데 도움이 되는 변경사항을 도입했다. 그 중 몇 가지는 개발자프리뷰1인 디피1이 초기 버전이다. 알림창 전용 대화 [[섹션]]을 통해 사용자는 즐겨 쓰는 애플리케이션에서 사람들과 진행 중인 대화를 즉시 찾을 수 있다. [[버블]](Bubbles)은 스마트폰에서 멀티태스킹을 하면서 대화를 보고 액세스 할 수 있는 방법이다. 메시지 및 채팅 애플리케이션은 알림에서 버블 API를 사용해 안드로이드 11에서 이것을 활성화해야 한다. 안드로이드 11에는 알림 답장에 이미지 삽입 기능이 들어간다. 애플리케이션에서 이미지 복사 및 붙여넣기를 지원하며, 알림 창에 있는 [[인라인]] 회신에 직접 이미지를 삽입해 더욱 풍부한 커뮤니케이션이 가능하다. 또한, 신경망 API 1.3 버전은 안드로이드 장치에서 [[머신 러닝]](machine learning)을 위해 계산 집약적인 작업을 실행하도록 설계되었다. 안드로이드 11에서는 개발자가 사용할 수 있는 작업 및 제어 기능을 확장하고 있으며, 이 버전에서는 일반적인 사용 사례를 최적화하는 데 도움이 되는 새로운 작업 및 실행 컨트롤이 추가되었다. 구글은 API 1.3 버전에 대한 지원을 최적화하고 출시하기 위해 [[하드웨어]] 공급업체 및 [[텐서플로우]]와 같은 널리 사용되는 머신 러닝 프레임워크와 협력하고 있다. | ||
+ | |||
+ | 안드로이드 11의 연결성 부문에서는 통화 스크린 애플리케이션에서 세부 정보의 일부로 수신 통화의 네트워크상 발신자 조회 서비스(STIR/SHAKEN) 확인 상태를 얻을 수 있으며, 시스템에서 제공하는 통화 후 화면을 사용자 지정을 통해 사용자가 통화를 스팸으로 표시하거나 연락처에 추가하는 등의 작업을 수행한다. 와이파이 제안 API 향상으로 연결 관리 애플리케이션이 자체 네트워크를 보다 효과적으로 관리할 수 있으며, 연결 애플리케이션이 와이파이 제안 API를 사용해 패스포인트 네트워크를 관리할 수 있다. 안드로이드 11의 지연 시간이 짧은 비디오 디코딩은 실시간 비디오 스트리밍 애플리케이션과 구글 스태디아와 같은 실시간 게임 스트리밍 서비스에서도 중요하다. 새로운 API를 사용해 특정 코덱에 대해디코딩이 시작된 직후 가능한 빨리 첫 번째 프레임을 반환하여 지연 시간이 짧은 재생을 할 수 있다. HDMI 저 지연 모드(HDMI low-latency mode)는 애플리케이션에서 새로운 API를 사용해 외부 디스플레이 및 텔레비전에서 자동으로 저 지연 모드를 확인하고 요청할 수 있다. 이 모드에서 디스플레이와 텔레비전은 대기 시간을 최소화하기 위해 그래픽 포스트 프로세싱을 비활성화한다.<ref name="안드11">〈[https://1boon.kakao.com/kbench/5e4e3f3089f104270d58a61f 구글 안드로이드 11 개발자 프리뷰 배포, 주요 특징을 살펴보자]〉, 《일분》, 2020-02-20</ref> | ||
+ | |||
+ | ;개인정보 및 보안 | ||
+ | 안드로이드 11에서는 새로운 권한 옵션, 범위가 지정된 스토리지 업데이트 등을 통해 사용자 개인 정보 보호에 주력한다. 일회성 권한(One-time permission)은 위치 정보뿐만 아니라 장치 마이크 및 카메라에 대한 가장 민감한 유형의 데이터에 대해 사용자가 일회성 권한을 통해 임시 액세스 권한을 부여할 수 있다. 범위지정 스토리지(Scoped Storage)는 외부 스토리지에서 애플리케이션 및 사용자 데이터를 보다 효과적으로 보호하기 위한 기능이다. 개발자 프리뷰 버전에서는 미디어에 대한 옵트인 원본 파일 경로 액세스와 업데이트된 문서 [[사용자 인터페이스]](Documents UI), 메디스스토어(MedisStore)의 일괄 편집 작업과 같은 여러가지 향상된 기능이 포함되어 있다. 보안 분야에서는 광범위한 장치의 요구를 충족시키기 위해 생체인식 지원을 확장했다. 바이오메트릭프롬프트(BiometricPrompt)은 세분화된 세 가지 인증 유형인 강함, 약함, 장치 자격증명을 지원한다. 또한, 애플리케이션의 활동 수명주기에서 바이오메트릭프롬프트 흐름을 분리해 다양한 애플리케이션 아키텍처와 쉽게 통합하고 트랜잭션 사용자 인터페이스를 개선했다. 플랫폼 강화로 바운드산(BoundSan), 인트산(IntSan), CFI, 섀도 호출스택(Shadow-Call Stack) 등 보안 핵심 구성 요소에서 컴파일러 기반의 살균제(sanitizer) 사용을 확대하고, 안드로이드 11 이상을 대상으로 하는 애플리케이션에서 힙 포인터 태깅(heap pointer tagging)을 활성화하여 애플리케이션 프로덕션 단계에서 메모리 문제를 쉽게 찾을 수 있다. 안전한 스토리지 및 데이터 공유를 위해 애플리케이션에서 블로브스토어 매니저(Blobstore Manager)를 통해 다른 애플리케이션과 데이터 블롭을 쉽고 안전하게 공유할 수 있다. 또한, 안드로이드 11은 ISO 18013-5 호환 모바일 운전 면허증과 같은 신원 확인 문서의 안전한 저장 및 검색을 위한 플랫폼 지원을 추가했다.<ref name="안드11"></ref> | ||
+ | |||
+ | ;업데이트 및 호환성 | ||
+ | 구글은 안드로이드 10부터 생태계 전반의 보안과 개인정보 보호 및 일관성을 개선하기 위해 구글 플레이 시스템 업데이트에 대한 투자를 확대했다. 안드로이드 11에는 업데이트 가능한 12개의 새로운 모듈을 추가해 총 22개의 모듈을 갖췄다. 안드로이드 11의 주요 특징으로는 안드로이드 장치의 중요한 개인정보 보호 제어에 대한 사용자 및 개발자의 액세스를 표준화하는 권한 모듈, 범위지정 스토리지 관련 개인정보 보호 노력에 필수적인 미디어 제공 업체 모듈, 성능을 최적화하고 전체적으로 일관된 API를 보장하는 NNAPI 모듈이 있다. 애플리케이션 호환성 부문에서도 안드로이드 11은 플랫폼 업데이트 영향을 최소화하기 위해 새로운 프로세스와 개발자 도구 및 출시 이정표를 추가했다. 안드로이드 개발 정책을 바꾸면 운영체제가 더 유용하고 안전하여 성능이 향상될 수 있지만, 변경 중 일부는 개발자 애플리케이션에 영향을 줄 수 있는 동작 변경을 최소화했다. 손쉬운 테스트 및 디버깅을 지원하기 위해 개발자가 호환성 테스트 과정에서 많은 주요 변경 사항을 토글 방식으로 제어할 수 있다. 개발자 옵션과 디버그 브리지(adb)에서 개별적으로 변경 사항을 강제로 활성화하거나 비활성화 할 수 있다. 이를 통해 더 이상 대상 [[SDK]] 버전을 변경하거나 기본 테스트를 위해 앱을 다시 컴파일 할 필요가 없어졌다. 또한, 개발자들이 초기 애플리케이션 호환성을 준비하는 것이 최종 변경에 대한 명확한 날짜 없이 이뤄지고 있다는 의견에 대해 안드로이드 11에서는 플랫폼 안정성(Platform Stability)을 출시했다. 최종 SDK, NDK API, 애플리케이션에 영향을 줄 수 있는 최종 내부 API, 시스템 동작도 포함되어 플랫폼 안정성 버전에 맞춰 애플리케이션의 최종 개발 및 테스트를 계획할 수 있다.<ref name="안드11"></ref> | ||
+ | |||
+ | ;카메라 개선 | ||
+ | 마법사 디코더 API(mage Decoder API)를 사용하면 HEIF 파일에 저장된 이미지 시퀀스 애니메이션을 디코딩 및 렌더링 할 수 있다. 고품질 자산을 사용하면서 네트워크 데이터와 응용 프로그램 패키지(APK) 크기에 미치는 영향을 최소화한다. HEIF 이미지 시퀀스는 애니메이션 GIF와 비교해 이미지 시퀀스 파일 크기를 크게 줄일 수 있으며, 새로운 NDK API를 통해 애플리케이션은 그래픽과 포스트 프로세싱을 위해 네이티브 코드에서 이미지를 디코딩 및 인코딩하고, 외부 라이브러리를 번들로 제공할 필요가 없어 더욱 작은 APK 크기를 유지한다. 또한, 기본 디코더는 지속적인 플랫폼 보안 업데이트를 위해 안드로이드 프로세스를 활용하며, 카메라 촬영시 음소거 기능이 추가되어 애플리케이션이 새로운 API를 사용하여 세션이 활성화된 동안 방해요소의 영향을 받지 않는다. 특히, 카메라 촬영 시 음소거 기능이 추가되어 애플리케이션이 새로운 API를 사용하여 세션이 활성화된 동안 벨 소리, 알람, 알람 진동 등의 방해요소가 영향을 주지 않도록 오프(off)기능이 추가되었다. [[보케 모드]](Bokeh modes)는 메타 데이터 태그를 사용해 이를 지원하는 장치의 카메라 캡처 요청으로 활성화 할 수 있다. 사진 촬영은 최고 품질 캡처를 제공하는 반면 연속 모드는 비디오 촬영과 같은 센서 출력을 유지한다.<ref name="안드11"></ref> | ||
+ | |||
+ | ==활용== | ||
+ | 구글은 자사의 모바일 플랫폼 안드로이드가 사용자들의 손바닥 위를 넘어 그들의 손목과 자동차, 방 안과 거실까지, 모든 곳에 존재하길 원한다. 안드로이드는 훨씬 전부터 우리의 상상을 뛰어넘는 기묘한 장소들에서 존재해왔다.<ref name="활용">Greenbot, 〈[http://www.itworld.co.kr/print/88755 “여기에도 있다니?” 일상 속의 안드로이드 기기 7선]〉, 《아이티월드》</ref> | ||
+ | |||
+ | *'''안드로이드 냉장고''': [[파나소닉]]은 이미 오래전 [[클라우드]] 기반의 안드로이드 전자레인지를 개발한 바 있다. 음식 조리법이나 해동법을 검색 가능하다는 것이 이 기기가 내세운 특별한 점이다. 이 외에도 안드로이드 기반의 밥솥도 개발했는데, 이 밥솥의 경우에는 [[RFID]]를 통해 안드로이드 애플리케이션을 이용한 조리법 공유가 가능하다. 이러한 스마트 가전들은 우리의 일상에 많은 도움과 즐거움을 줄 수 있는 존재들이다. 특히 주방에서 오랜 시간을 보내는 주부들에겐 부엌에서의 시간이 마법같이 달라지는 계기가 될 수도 있다.<ref name="활용"></ref> | ||
+ | |||
+ | *'''안드로이드 오토'''(Android Auto): 디스플레이가 탑재된 차량을 안드로이드 기반의 스마트폰과 연결하여 스마트폰의 편리한 기능을 원활하게 사용할 수 있게 한다. [[안드로이드 오토]]를 이용하면 운전자들이 가장 많이 사용하는 내비게이션 및 미디어(음악 듣기 등), 커뮤니케이션(전화, 메시지) 등의 기능을 [[구글 어시스턴트]]를 통해 음성으로 제어할 수 있다. 안드로이드 오토의 주요 기능들은 구글 어시스턴트를 통해 음성 명령으로 조작된다. 내비게이션 기능에는 [[카카오내비]] 애플리케이션이 기본애플리케이션으로 탑재되어 있으며 차량용 디스플레이에 최적화된 [[사용자 인터페이스]]로 스마트한 드라이빙을 경험할 수 있다. 미디어에는 [[벅스]], [[멜론]] 등 인기 음악 및 [[팟 캐스트 앱]]을 사용할 수 있다. 주행 중에도 듣고 싶은 음악을 언제든지 음성 명령으로 재생할 수 있으며, 내비게이션 안내 멘트가 나올 때는 자동으로 음량을 줄여주기도 한다. 커뮤니케이션에는 주행 중 언제든지 음성 명령을 통해 전화를 걸고, 메시지를 보내고, 미처 확인하지 못한 메시지는 음성으로 들을 수도 있다. 구글 어시스턴트는 차 안에서 안드로이드 오토 기능을 더 안전하게 사용할 수 있도록 음성 명령 기능을 지원하며, 일정, 오늘의 날씨, 검색 등 기존 구글 어시스턴트의 기능들도 차 안에서 즐길 수 있도록 한다.<ref>김종율 기자, 〈[https://www.automotivereport.co.kr/news/articleView.html?idxno=1670 ‘안드로이드 오토’의 주요 기능들]〉, 《오토모티브리포트》, 2018-09-03</ref> | ||
+ | |||
+ | *'''안드로이드 프린터''': [[HP]]는 8.8cm의 안드로이드 기반 [[터치스크린]]을 장착해 애플리케이션을 실행하거나 게임을 즐기고, 문서를 스캔할 수 있는 [[포토 스마트e 스테이션 c510]] 프린터 모델을 출시했다. 이러한 유형의 기기 군은 완전히 새로운 개념도 아니고, 단순히 프린터에 [[태블릿]]을 부착한 형태도 아닌 애매한 위치에서 어느 정도의 수요를 유지하고 있다. [[폴라로이드]] 역시 이와 유사한 안드로이드 기반 카메라 겸 프린터 제품을 선보인 바 있지만 이러한 제품들의 개발 의도와 상관없이 안드로이드 [[킷캣]] 자체에 인쇄 기능이 있는 이상 특별히 존재할 이유는 없다.<ref name="활용"></ref> | ||
+ | |||
+ | *'''안드로이드 거울''': 일본의 [[세라쿠 코퍼레이션]](Seraku Corporation)은 욕실 거울인 동시에 정보 터미널의 역할까지 수행하는 [[스마트 베이신]](Smart Basin)을 시연한 바 있다. 이 욕실 가구 겸 전자 기기는 수량계 기능은 물론 체중 관리 및 내장 의료 기능까지 제공한다. 거울 역시 실제 거울이 아닌 숨겨진 안드로이드 태블릿에 의해 작동하는 반사 디스플레이다. 거울과 전자기기로서 흥미로운 스마트 욕실의 첫걸음이다.<ref name="활용"></ref> | ||
+ | |||
+ | ==비교== | ||
+ | 아이오에스와 안드로이드는 각기 다른 특징을 갖추고 있다. 먼저 [[아이오에스]](ios)는 [[애플]] 의 아이폰, 아이팟 터치, 아이패드 등에 내장된 모바일 운영체제다. 아이오에스에 대한 모든 권리를 애플이 소유하고 있음으로 아이오에스는 오직 애플만 사용할 수 있다. 소스 코드를 비공개하고, 운영체제의 소유권도 온전히 애플에만 있다는 것이다. 그 때문에 아이오에스는 아무 애플리케이션이나 설치할 수 없으며 오직 애플[[앱스토어]]에서만 애플리케이션을 내려받아야 한다. 이는 아이오에스의 장점으로 꼽히는 점으로 애플 앱스토어는 강력하게 사전 검사를 하기에 실행이 안 되거나, 완성도가 떨어지거나, 악성 코드가 섞여 있는 애플리케이션이 올라오는 경우는 매우 드물다. 폐쇄형 플랫폼, [[클로즈 소스]] 로 보안성이 강하기 때문에 다른 기기와 호환은 불가능하지만 [[아이클라우드]](iCloud) 시스템으로 같은 애플의 제품과 컴퓨터의 문서, 애플리케이션, 연락처, 사진 등을 공유할 수 있다. 하지만 전용 프로그램인 [[아이튠즈]] 를 이용해야 파일을 전송받을 수 있으며, 지원하는 파일 형식이 다양하지 않아서 별도로 파일을 기기에 맞춰 변환해야 하는 번거로움이 있다. 이와 반대로 구글은 2007년 11월 안드로이드 플랫폼을 휴대용 장치 운영체제로서 무료로 공개한다고 발표했다. 다시 말해, 구글에서 무료로 배포하고 기업이나 사용자는 각자 안드로이드 프로그램을 독자적으로 개발해 탑재할 수 있게 된 것이다. 또한, 응용 프로그램을 사고팔 수 있는 [[구글 플레이]](Google Play)를 제공하며, 각 제조사 혹은 통신사별 응용 프로그램 마켓이 함께 운영되고 있다. 특히 구글에서 배포한 운영체제이기 때문에 구글의 [[웹서비스]] 와 높은 호환성을 갖고 있다. 안드로이드의 장점으로는 개방성을 꼽는다. 사용자가 자신의 기호에 맞춰 운영체제를 [[커스터마이징]] 할 수 있는데 안드로이드 바탕화면의 위젯이 이러한 커스터마이징을 잘 나타내준다. 그리고 장치를 [[유에스비]](USB)로 인식하기 때문에 파일 삽입이 유용하다는 점도 있다. 그렇지만 개방된 플랫폼이다 보니 보안이 취약하여 악성 코드 혹은 바이러스에 노출된다는 점이 있다.<ref>현대모비스, 〈[https://m.blog.naver.com/PostView.nhn?blogId=e_mobis&logNo=220648853360&proxyReferer=https:%2F%2Fwww.google.com%2F 스마트폰 운영체제 비교]〉, 《네이버 블로그》, 2016-03-21</ref> | ||
+ | |||
+ | {{각주}} | ||
+ | |||
+ | == 참고자료 == | ||
+ | *콘파냐, 〈[https://thrillfighter.tistory.com/326 안드로이드(Android) 정리 시작 배경과 역사]〉, 《티스토리》 | ||
+ | *Charlezz, 〈[https://www.charlezz.com/?p=792 안드로이드의 구조]〉, 《개인 사이트》, 2018-10-11 | ||
+ | *모빌리티, 〈[https://automobility.tistory.com/381 (안드로이드 #2)안드로이드의 특징 9가지]〉, 《티스토리》, 2017-06-06 | ||
+ | *준, 〈[https://june83.tistory.com/entry/iPhone%EA%B3%BC-Android-%EA%B0%9C%EB%B0%9C%EC%9D%98-%EC%9E%A5%EB%8B%A8%EC%A0%90 iPhone과 Android 개발의 장단점]〉, 《티스토리》, 2011-01-17 | ||
+ | *싱글싱글life, 〈[https://m.blog.naver.com/PostView.nhn?blogId=gkrwja88&logNo=221679904705&proxyReferer=https:%2F%2Fwww.google.com%2F 구글 안드로이드 10의 새로운 기능 10가지 알아보기]〉, 《네이버 블로그》, 2019-10-16 | ||
+ | *JJun, 〈[http://blog.daum.net/creazier/15309926 Android NFC]〉, 《다음 블로그》, 2013-08-05 | ||
+ | *개발자 김태우, 〈[https://android-kr.tistory.com/6 기기 호환성 (Device Compatibility)]〉, 《티스토리》, 2015-05-15 | ||
+ | *원수연 기자, 〈[https://news.appstory.co.kr/howto13043 보안 취약점 '1위' 안드로이드, 안전하게 쓰려면?]〉, 《앱스토리》, 2020-03-25 | ||
+ | *이안이아빠, 〈[https://daystudy.tistory.com/358 한눈에 보는 안드로이드의 역사]〉, 《티스토리》, 2020-04-01 | ||
+ | *〈[https://1boon.kakao.com/kbench/5e4e3f3089f104270d58a61f 구글 안드로이드 11 개발자 프리뷰 배포, 주요 특징을 살펴보자]〉, 《일분》, 2020-02-20 | ||
+ | *Greenbot, 〈[http://www.itworld.co.kr/print/88755 “여기에도 있다니?” 일상 속의 안드로이드 기기 7선]〉, 《아이티월드》 | ||
+ | *김종율 기자, 〈[https://www.automotivereport.co.kr/news/articleView.html?idxno=1670 ‘안드로이드 오토’의 주요 기능들]〉, 《오토모티브리포트》, 2018-09-03 | ||
+ | *현대모비스, 〈[https://m.blog.naver.com/PostView.nhn?blogId=e_mobis&logNo=220648853360&proxyReferer=https:%2F%2Fwww.google.com%2F 스마트폰 운영체제 비교]〉, 《네이버 블로그》, 2016-03-21 | ||
+ | |||
+ | == 같이 보기 == | ||
+ | * [[앤디 루빈]] | ||
+ | * [[구글]] | ||
+ | * [[아이오에스]] | ||
+ | * [[운영체제]] | ||
+ | * [[스마트기기]] | ||
+ | |||
+ | {{운영체제|검토 필요}} |
2020년 11월 23일 (월) 15:43 기준 최신판
안드로이드(Android)는 2003년 앤디 루빈(Andy Rubin)이 리눅스(Linux)를 기반으로 만든 오픈소스 운영체제이다. "인간을 닮은 로봇"이라는 뜻으로, 2005년 7월에 구글이 안드로이드 회사를 인수하여 전 세계에 무료로 보급했다. 이때부터 구글 안드로이드(Google Android)라고 불린다. 삼성전자㈜, LG, 화웨이, 샤오미 등 전 세계 스마트폰의 운영체제로 사용되고 있다.
목차
개요[편집]
안드로이드는 스마트폰을 비롯한 모바일기기를 위한 운영체제, 미들웨어, 사용자 인터페이스와 표준 응용 프로그램인 웹 브라우저, 이메일 클라이언트, SMS, MMS 등을 포함하고 있는 소프트웨어 스택이자 모바일 운영체제이다. 안드로이드는 개발자들이 자바(Java) 언어로 응용 프로그램을 작성할 수 있게 개발했으며, 컴파일된 바이트 코드를 구동할 수 있는 런타임 라이브러리를 제공한다. 또한, 안드로이드 소프트웨어 개발 키트 SDK를 통해 응용 프로그램을 개발하는 데 필요한 각종 도구와 API를 제공한다. 안드로이드는 다양한 버전으로 출시되기 시작해 버전마다 디저트의 이름이 붙어있다. 안드로이드는 6개월~12개월에 한 번씩 업데이트가 진행되고 구글에서 계속 개발 중이며, 안드로이드 업데이트는 새로운 기능 추가나 오류를 수정할 때 구성이 된다. 오픈소스는 안드로이드 오픈소스 프로젝트에서 사용할 수 있다.
등장 배경[편집]
안드로이드는 2003년에 앤디 루빈(Andy Rubin)이 리눅스를 기반으로 안드로이드(Android) 운영체제를 개발하여 설립된 휴대용 단말기 소프트웨어를 개발하는 회사명이었다. 그 당시에는 디지털카메라의 보급이 활발했던 시대였고, 디지털카메라의 운영체제를 개발하기 위한 회사였다. 하지만, 휴대폰에 점점 카메라를 접목하기 시작하며 디지털카메라의 보급이 주춤해지자 이에 발맞춰 스마트폰의 운영체제를 개발하는 회사가 되었다. 이후, 2년 만에 구글이 앤디 루빈이 세운 안드로이드사를 인수했다. 구글에서 서비스하는 유튜브(YouTube), 구글 맵(Google Map) 등의 서비스와 함께 안드로이드 스마트폰은 무한한 확장과 가능성이 열려있다. 2007년 11월 5일에는 전 세계 각국의 이동통신 관련 회사 연합체인 오픈 핸드셋 얼라이언스(OHA)가 리눅스 커널 2.6에서 빌드된 첫 번째 모바일기기 플랫폼 결과물인 안드로이드를 발표했으며, 2008년 10월 21일에는 안드로이드가 오픈 소스로 선언되었다.[1]
특징[편집]
안드로이드 특징에는 애플리케이션 프레임워크(Application Framework)로 사용자가 개발에 사용할 다양하며 확장 가능한 컴포넌트를 제공해준다. 이것은 사용자가 화면을 구성할 때, 복잡한 기능을 구현할 때 편리하게 구현이 가능하도록 도와준다. 달빅 가상머신(Dalvik VM)은 자바 가상머신과 유사한 가상머신으로 안드로이드 애플리케이션을 실행하기 위한 레지스터 머신 형태의 가상 머신이다. 모바일 플랫폼과 같은 작은 메모리 요구 사양에서도 무리 없이 동작하도록 최적화되어있으며 하나의 장치에서 여러 가상머신 인스턴스(instance)가 동작하도록 설계되어 있다. 오픈소스(OpenSource)인 웹 킷 엔진(WebkitEngine)을 기본적으로 가지고 있어서 웹브라우저 애플리케이션에서 통합브라우저를 사용한다. 사용자 인터페이스 제공을 위한 프레임워크를 지원한다. 다양한 그래픽 표현을 위한 2D 및 3D 라이브러리를 제공한다. 효율적인 데이터 저장이나 검색할 수 있도록 에스큐엘 라이트(SQLite)를 통한 관계형 데이터베이스 라이브러리를 제공한다. 멀티미디어 환경에 걸맞게 동영상, 오디오, 이미지 포맷을 지원한다. 개방형 플랫폼으로 다양한 통신환경을 지원한다. 해외에서 많이 사용되는 통신환경인 와이파이, 블루투스 등 비 휴대전화 무선 통신 환경도 지원한다. 마지막으로, 디바이스 에뮬레이터를 이용하여 안드로이드 디바이스가 없어도 개발이 가능하다. 디바이스와 관련된 디버깅 툴 분석 툴 들을 제공하여 애플리케이션 개발 시 편리한 환경을 제공해준다는 특징들이 있다.[2]
구조[편집]
- 커널 계층(Kernel Layer): 안드로이드 계층 최하단에 있으며, 시스템 전체의 중심역할을 한다. 사용자나 개발자가 이쪽 계층에서 작업한다거나 상호작용할 일은 없다. 커널에서 담당하는 일은 하드웨어 추상화, 메모리 관리, 보안 설정, 전원관리, 다른 하드웨어 장치 드라이버 관리, 네트워크 시스템 관리가 있다. 안드로이드의 버전과 함께 커널의 버전도 업데이트된다.[3]
- 네이티브 라이브러리 계층(Native Libraries Layer): 안드로이드는 상대적으로 작은 용량의 주기억장치와 저전력의 중앙처리장치(CPU)가 탑재된 기기에서 동작하기 때문에 이러한 기기에 최적화된 원시 코드로 컴파일한다. libc 또는 libm과 같은 기본적인 라이브러리는 특히 메모리 소비가 적기 때문에 안드로이드에 적합하다. 이 계층의 서피스 매니저(Surface Manager)는 프레임워크 계층의 윈도우 매니저(Window Manager)의 화면 접근에 대해 처리를 하기도 하고, 미디어 프레임워크(Media Framework)는 오디오 및 비디오 코덱을 포함하며 각종 음악, 동영상, 사진을 포함한 각종 미디어처리를 담당한다. 그 외에도 다양한 오픈소스 라이브러리들을 포함한다.[3]
- 안드로이드 런타임(Android Runtime): 안드로이드의 런타임을 이해하기 위해서는 자바의 가상머신을 알아야 한다. 일반적인 컴파일 언어는 중앙처리장치의 아키텍처와 플랫폼의 환경에 맞추어 기계어로 컴파일한다. 간단히 말하면, 사람이 작성한 프로그램을 중앙처리장치가 알아들을 수 있는 언어로 바로 번역하여 저장하는 것이다. 이 중앙처리장치 간의 서로 다른 언어가 아키텍처에 해당한다고 보면 된다. 그러나 자바의 경우는 기본적으로 한가지 중앙처리장치의 아키텍처나 환경에 맞추는 것이 아닌 바이트 코드라는 것으로 컴파일되며, 이를 실행하기 위해서는 자바 가상 머신이 필요하다. 이렇게 하는 이유는 자바는 바이트 코드 하나만으로 여러 가지 아키텍처나 플랫폼에서 작동할 수 있도록 하는 것이 목표이기 때문이다. 아키텍처와 플랫폼에 맞는 가상머신만 있다면 하나의 실행 파일만 가지고도 각종 장치에서 쓸 수 있다.[3]
- 애플리케이션 프레임워크 계층(Application Framework Layer): 애플리케이션 프레임워크 계층부터는 자바로 작성되며 기본 네이티브 라이브러리와 안드로이드 런타임을 추상화한 계층이다. 안드로이드 애플리케이션은 자체 런타임에서 실행되며 액티브(Active)와 같은 여러 구성 요소로 구성된다. 이러한 컴포넌트는 다른 애플리케이션과 상호 작용할 수 있다.[3]
- 애플리케이션 계층(Applications Layer): 안드로이드 구조 스택(Stack)의 최상위 계층에 있으며, 안드로이드기기를 사용하는 대부분의 사용자가 이 계층과 상호작용한다. 예를 들면, 전화 걸기, 웹 브라우저, 카카오톡, 게임 등 개발자는 애플리케이션 프레임워크를 이용하여 애플리케이션을 개발한 다음 배포하여 설치되는 안드로이드 응용 프로그램 패키지(APK)가 애플리케이션 계층에 속하게 된다.[3]
장단점[편집]
안드로이드는 개발자의 입장에서 전 세계에서 가장 많이 쓰는 자바 를채택함으로써, 자바를 개발하던 개발자들이 안드로이드의 개발 환경에 관심을 가지게 하는 장점이 있다. 또한, 안드로이드 개발환경인 PC를 가지고 있다면 모두 무료 배표이다. 개발자 등록비용이 1년에 99달러인 아이폰의 경우와 달리 안드로이드 개발자 등록 비용은 단지 25달러이며, 1회만 등록하면 더 이상의 비용은 필요 없다. 안드로이드는 플랫폼의 통일화가 불가능하다는 점에서 모든 단점이 발생한다. 플랫폼이 다 다르기 때문에 네이비브 코드(native code) 상의 하드웨어적 접근은 불가하다. 대신 달빅(Dalvic)이라는 JVM 같은 가상 머신 을 둬서 이를 극복했다. 하지만 이 때문에 속도에 민감한 스마트폰에 치명적인 결과를 초래하였다. 또한, 다른 단점은 안정 단계에 들어선 아이오에스(IOS) 와 달리 안드로이드는 많은 문제점을 가지고 있다. 또한 버전별, 제조사 별로 호환되지 않는 애플리케이션이 존재하며 이는 사용자들에게 혼란을 준다. 안드로이드의 개발 환경구축은 아이폰보다 복잡하다.[4]
라이브 캡션[편집]
라이브 캡션 기능은 유튜브에서 설정하면 하단 부분에 텍스트가 표시되는 등의 자동 자막 기능이다. 이것은 좋은 기능인 동시에 많은 사람에게 도움을 줄 수 있다. 이 기능은 선천적 또는 후천적인 다양한 상황으로 인해 불편함을 겪고 있는 지구상의 수많은 청각 장애를 가진 분들에게 도움이 된다. 구글 안드로이드 10에서는 기본적으로 모든 애플리케이션에서 비디오, 팟캐스트, 음악 등 오디오가 있다면 자동으로 캡션 해 자막을 만들어 준다.[5]
NFC[편집]
NFC는 핸드폰 안에 들어가는 RFID 기술의 총체다. RFID는 무선 주파수를 이용해 통신하는 기술인데, 쉽게는 교통카드라고 보면 된다. 버스에 있는 교통카드를 읽는 장치에 티머니 등의 교통카드를 갖다 대면, 리더기가 교통카드를 인식하고 요금이 결제된다. 간단해 보이는 이 동작의 순간에 여러 가지 일들이 발생한다. 리더기에서 나온 전자기장이 교통카드에 전원을 공급한다. 교통카드는 순간적으로 부팅을하고 리더기와 통신을 한다. 이 과정에서 교통카드는 유효성 여부도 체크하고 잔액을 차감하는 일도 한다. NFC는 여기서 리더기의 역할을 한다. NFC를 지원하는 안드로이드 휴대폰에 티머니 등의 교통카드를 갖다 대면, 뭔가 인식이 되는 듯한 동작이 보인다. 안드로이드 단말에 들어가는 NFC 칩이 교통카드를 인식한 것인데, 교통카드 외에도 몇 가지 종류의 RFID 태그를 읽을 수 있다. NFC의 기능은 크게 카드 모드 태그 읽기/쓰기 모드 피투피 모드 등 크게 세 가지로 구분한다. 카드 모드는 NFC 단말이 스마트카드처럼 동작한다. 태그 읽기/쓰기 모드는 NFC 단말이 NFC 태그로부터 데이터를 읽거나, NFC 태그에 데이터를 쓴다. 피투피 모드는 NFC 단말이 다른 NFC 단말로부터 데이터를 읽어온다. NFC가 대중에게 알려지기 시작한 것은 안드로이드 휴대폰에 NFC 기능이 추가되면서부터다. 정확하게는 안드로이드 버전 2.3부터 NFC 기능이 추가됐다. 그 후로 몇 번의 버전 업에 따라 NFC API에도 변화가 있었다.[6]
호환성[편집]
호환성은 크게 기기 호환성과 애플리케이션 호환성으로 나뉜다. 안드로이드는 오픈 소스 프로젝트이기 때문에 하드웨어 제조업체들이 안드로이드 운영체제를 탑재한 디바이스 를 만들 수 있다. 안드로이드 실행환경에서 실행되도록 만들어진 애플리케이션을 디바이스에서 실행시킬 수 있다면 그 디바이스는 안드로이드와 호환된다. 라고 표현한다. 안드로이드 실행환경은 안드로이드 호환성 프로그램(Android compatibility program)에서 구체적으로 정의되어 있으며, 안드로이드와 호환되고자 하는 모든 디바이스는 호환성 테스트 수트(Compatibility Test Suite, CTS)를 통과해야 한다. 애플리케이션 개발자들은 어떤 디바이스가 안드로이드와 호환되고 호환되지 않는지에 대해 고민할 필요가 없다. 오직 안드로이드와 호환되는 디바이스에만 구글플레이 스토어가 설치되어 있기 때문이다. 따라서 안드로이드와 호환되지 않는 디바이스에서는 애플리케이션을 설치할 수 없기 때문에 개발자는 안심해도 된다. 그러나, 애플리케이션 개발자들은 다양한 디바이스 환경에 대해 애플리케이션이 호환되도록 노력해야 한다. 안드로이드와 호환되는 디바이스의 종류가 상당히 많고 그 중 애플리케이션이 필요로 하는 일부 기능이 없는 디바이스도 없을 수 있기 때문이다. 예를 들어, 내 앱의 핵심 기능이 나침반 센서 를 이용하고 있다면, 내 앱은 나침반 센서를 내장하고 있는 디바이스에서만 호환된다.[7]
보안[편집]
미국표준기술연구소가 공개한 정보에 의하면 보안 취약점 1위에 안드로이드 운영체제가 선정되었다. 오픈소스 운영체제인 데다가 전 세계 가장 많은 사용자 수를 가지고 있는 스마트폰에 적용되어 있어 많은 공격에 노출되어 있다는 문제가 있다. 전 세계 모바일 운영체제 기준 70% 이상을 점유하고 있는 안드로이드의 단점 중 하나이다. 또한, 더욱 안전하게 사용하기 위해서 업데이트의 빠른 설치가 필요하다. 운영체제 및 애플리케이션의 버그가 발견되거나 보안 취약점이 발견되면, 이를 해결하기 위한 업데이트가 이루어진다. 업데이트는 자동으로 진행되도록 기본 설정되어 있어서 안드로이드 기본 설정을 손대지 않고 쓰고 있다면 크게 신경 쓰지 않아도 되지만, 무언가 사용자의 확인 없이 자동으로 진행되는 것이 싫어서 자동 업데이트를 꺼놨다면, 자주 업데이트를 확인하거나 자동 업데이트로 설정을 변경해두어야 한다. 운영체제의 보안 업데이트는 제조사마다 조금씩 다를 수 있지만, 설정의 업데이트 센터 등을 찾아 들어가면 된다. 애플리케이션의 업데이트는 구글 플레이 스토어의 메뉴에서 설정 항목 안에 있는 '앱 자동 업데이트'에서 변경할 수 있다. 또한, 구글플레이 프로텍트를 사용하는 방법이 있다. 플레이 프로텍트는 구글이 직접 제공하는 보안 기능으로 애플리케이션과 기기에 유해한 문제가 있는지에 대해 자동으로 확인해 위험성을 빠르게 알려준다. 플레이 프로텍트를 활성화해놓으면 구글 플레이 스토어에서 애플리케이션을 내려받을 때 애플리케이션의 안정성을 미리 검사한다. 이미 설치된 애플리케이션도 유해한 동작이 있는지 확인하며, 구글 플레이 스토어를 거치지 않고 다른 소스를 통해 설치된 애플리케이션의 위험성도 체크한다. 플레이 프로텍트의 설정은 구글 플레이 스토어의 메뉴에서 플레이 프로텍트를 선택한 후 화면 오른쪽 위에 있는 톱니 모양의 설정 메뉴로 들어가 '플레이 프로텍트로 앱 검사' 항목을 활성화하면 된다. '유해 앱 감지 기능 개선' 기능도 활성화하면 알 수 없는 애플리케이션을 구글에 전송해 유해감지 기능 개선에 도움을 줄 수도 있다. 이외에도, 안전하게 안드로이드를 사용하기 위한 방법은 다음과 같다.[8]
- 신뢰도 높은 앱스토어 사용
- 애플리케이션의 유해성은 제조사가 책임져야 하지만, 유해한 애플리케이션을 만들어 개인의 이득을 도모하려 하는 것은 애플리케이션 스토어가 이를 책임지고 막아야 한다. 그렇기 때문에 앱스토어에 애플리케이션을 등록하려면 심사과정을 거치게 되며, 그 과정에서 유해한 애플리케이션이 걸러진다. 아이폰은 애플리케이션을 내려받아 설치할 방법은 애플(Apple)이 직접 운영하는 앱스토어(App Store)만을 이용해야 한다. 하지만 구글은 직접 운영하는 구글 플레이 스토어 외에도 통신사나 단말기 제조사가 운영하는 앱 스토어도 있고, 그 이외의 업체에서 운영하는 스토어도 있다. 그중에서 보안에 취약한 불법적인 스토어도 있기 때문에 가급적 구글 플레이 스토어나 통신사 운영 스토어와 같이 신뢰할 수 있는 앱스토어만 이용하는 것이 좋다. 스토어를 거치지 않고 확장자 apk 파일을 온라인에서 직접 내려받아서 설치할 수도 있는데, 이렇게 하려면 출처를 알 수 없는 애플리케이션 설치를 허용해야 한다. 앱스토어를 거치지 않은 애플리케이션은 악성코드나 바이러스 등이 숨겨져 있을 확률이 높고 공격에 취약할 가능성이 높기 때문에, 기본적으로 출처를 알 수 없는 애플리케이션 설치는 허용되지 않음으로 설정되어 있다.[8]
- 보안 애플리케이션 설치
- 인터넷 검색을 하다 보면 사용자도 모르게 피싱 사이트에 접속할 수도 있고, 악성코드가 들어 있는 파일을 내려받거나 실행할 수도 있다. PC에서는 이런 상황을 대비해 안티바이러스 프로그램 등을 설치해 쓰는데, 스마트폰도 V3 모바일 시큐리티나 알약 M 등 안티바이러스와 보안 관련 애플리케이션을 다운받아 사용할 수 있다. 이런 보안 애플리케이션들은 기본적으로 바이러스와 악성코드 차단 및 제거 기능뿐만 아니라 악성 URL을 실시간으로 감시해 스미싱 피해를 예방하기도 하며, 공용 와이파이에서도 개인정보 유출 등의 불안 없이 안심하고 사용할 수 있다. 부가기능으로 메모리 관리와 속도 향상 등의 유용한 기능도 제공한다.[8]
버전[편집]
안드로이드 10[편집]
2019년 9월에 출시한 안드로이드 10은 디저트 이름 대신 간단한 번호로 이름을 붙인 첫 번째 버전이다. 안드로이드 10 버전에서 구글은 안드로이드 제스처 인터페이스를 완전하게 수정했다. 탭 할 수 있는 뒤로 버튼을 빼고 스와이프 방식의 시스템 내비게이션을 적용했다. 내부를 들여다보면 안드로이드 10에는 핫픽스 스타일 업데이트를 위한 새로운 설정 기능이 들어갔다. 이를 이용하면 더 작은 규모의 문제를 수정하는 패치를 더 빠르고 지속해서 내놓을 수 있다. 이는 소프트웨어 자체적으로도 중요한 개선이다. 예를 들어, 개선된 승인 시스템 덕분에 애플리케이션이 언제 어떻게 위치 데이터에 액세스(Access)하는지를 더 정확하게 사용자가 제어할 수 있다. 기기의 작동 내역을 추적하는 데 사용할 수 있어 특정 기기 사용자를 보호하는 것도 가능하다. 이외에도 안드로이드 10에는 다양한 개선사항이 추가됐다. 시스템 전반에 걸친 다크 테마와 화면 위 버튼을 탭 하는 것으로 산만하게 하는 애플리케이션의 방해를 최소화하는 포커스 모드(Focus Mode), 오랫동안 미뤄왔던 공유 메뉴 등이다. 새로운 라이브 캡션(Live Caption) 기능을 지원하기 위한 기반도 추가됐다. 이를 이용하면 비디오, 팟캐스트, 일반적인 음성 녹음 등 휴대폰에서 재생되는 모든 미디어에 대한 캡션을 생성한다. 단 이 기능을 소프트웨어 공개 시점에서 당장 사용할 수는 없다.[9]
안드로이드 11[편집]
안드로이드 11에서는 개인정보 보호 및 보안을 최우선으로 유지하면서 사용자가 최신 혁신을 활용할 수 있도록 집중하고 사용자가 중요한 데이터 및 파일에 대한 액세스를 관리할 수 있도록 여러 가지 새로운 기능을 추가했다. 안드로이드 11은 개발자들에게 폴더, 5G 개선, 통화 차단 API, 새로운 미디어 및 카메라 기능, 머신 러닝 등과 같은 애플리케이션을 위한 수많은 새로운 기능을 제공한다. 5G 이동통신은 전 세계의 더욱 많은 사용자에게 지속해서 빠른 속도와 낮은 대기 시간을 제공한다. 5G를 사용하면 4K 비디오 스트리밍과 고해상도 게임 자산 로딩 같은 와이파이 애플리케이션 경험을 모바일 사용자에게 확장하거나 특별히 설계된 새로운 경험을 구축할 수 있다. 또한, 기존 연결 API 개선 및 업데이트를 통해 5G의 향상된 속도를 활용할 수도 있다. 새로운 스크린 타입은 구글이 안드로이드 9 때부터 디스플레이 컷아웃(cutout) API를 통해 전면 카메라나 센서 등 디스플레이 일부 영역이 가려지는 문제에 대한 애플리케이션 최적화를 지원했다. 안드로이드 11에서는 기존 디스플레이 컷아웃 API를 사용해 핀홀(Pinhole) 및 워터 폴(Waterfall) 스크린 화면을 관리할 수 있으며, 원하는 경우 새 API를 사용해 애플리케이션이 가장자리를 포함한 전체 워터 폴 화면의 상호 작용을 관리할 수 있다.
안드로이드 11의 사용자와 대화하는 기능으로, 스마트폰에서 가장 중요한 일은 친구 및 동료와 대화하는 것이다. 안드로이드 11에서는 개발자가 더 깊은 대화 경험을 만드는 데 도움이 되는 변경사항을 도입했다. 그 중 몇 가지는 개발자프리뷰1인 디피1이 초기 버전이다. 알림창 전용 대화 섹션을 통해 사용자는 즐겨 쓰는 애플리케이션에서 사람들과 진행 중인 대화를 즉시 찾을 수 있다. 버블(Bubbles)은 스마트폰에서 멀티태스킹을 하면서 대화를 보고 액세스 할 수 있는 방법이다. 메시지 및 채팅 애플리케이션은 알림에서 버블 API를 사용해 안드로이드 11에서 이것을 활성화해야 한다. 안드로이드 11에는 알림 답장에 이미지 삽입 기능이 들어간다. 애플리케이션에서 이미지 복사 및 붙여넣기를 지원하며, 알림 창에 있는 인라인 회신에 직접 이미지를 삽입해 더욱 풍부한 커뮤니케이션이 가능하다. 또한, 신경망 API 1.3 버전은 안드로이드 장치에서 머신 러닝(machine learning)을 위해 계산 집약적인 작업을 실행하도록 설계되었다. 안드로이드 11에서는 개발자가 사용할 수 있는 작업 및 제어 기능을 확장하고 있으며, 이 버전에서는 일반적인 사용 사례를 최적화하는 데 도움이 되는 새로운 작업 및 실행 컨트롤이 추가되었다. 구글은 API 1.3 버전에 대한 지원을 최적화하고 출시하기 위해 하드웨어 공급업체 및 텐서플로우와 같은 널리 사용되는 머신 러닝 프레임워크와 협력하고 있다.
안드로이드 11의 연결성 부문에서는 통화 스크린 애플리케이션에서 세부 정보의 일부로 수신 통화의 네트워크상 발신자 조회 서비스(STIR/SHAKEN) 확인 상태를 얻을 수 있으며, 시스템에서 제공하는 통화 후 화면을 사용자 지정을 통해 사용자가 통화를 스팸으로 표시하거나 연락처에 추가하는 등의 작업을 수행한다. 와이파이 제안 API 향상으로 연결 관리 애플리케이션이 자체 네트워크를 보다 효과적으로 관리할 수 있으며, 연결 애플리케이션이 와이파이 제안 API를 사용해 패스포인트 네트워크를 관리할 수 있다. 안드로이드 11의 지연 시간이 짧은 비디오 디코딩은 실시간 비디오 스트리밍 애플리케이션과 구글 스태디아와 같은 실시간 게임 스트리밍 서비스에서도 중요하다. 새로운 API를 사용해 특정 코덱에 대해디코딩이 시작된 직후 가능한 빨리 첫 번째 프레임을 반환하여 지연 시간이 짧은 재생을 할 수 있다. HDMI 저 지연 모드(HDMI low-latency mode)는 애플리케이션에서 새로운 API를 사용해 외부 디스플레이 및 텔레비전에서 자동으로 저 지연 모드를 확인하고 요청할 수 있다. 이 모드에서 디스플레이와 텔레비전은 대기 시간을 최소화하기 위해 그래픽 포스트 프로세싱을 비활성화한다.[10]
- 개인정보 및 보안
안드로이드 11에서는 새로운 권한 옵션, 범위가 지정된 스토리지 업데이트 등을 통해 사용자 개인 정보 보호에 주력한다. 일회성 권한(One-time permission)은 위치 정보뿐만 아니라 장치 마이크 및 카메라에 대한 가장 민감한 유형의 데이터에 대해 사용자가 일회성 권한을 통해 임시 액세스 권한을 부여할 수 있다. 범위지정 스토리지(Scoped Storage)는 외부 스토리지에서 애플리케이션 및 사용자 데이터를 보다 효과적으로 보호하기 위한 기능이다. 개발자 프리뷰 버전에서는 미디어에 대한 옵트인 원본 파일 경로 액세스와 업데이트된 문서 사용자 인터페이스(Documents UI), 메디스스토어(MedisStore)의 일괄 편집 작업과 같은 여러가지 향상된 기능이 포함되어 있다. 보안 분야에서는 광범위한 장치의 요구를 충족시키기 위해 생체인식 지원을 확장했다. 바이오메트릭프롬프트(BiometricPrompt)은 세분화된 세 가지 인증 유형인 강함, 약함, 장치 자격증명을 지원한다. 또한, 애플리케이션의 활동 수명주기에서 바이오메트릭프롬프트 흐름을 분리해 다양한 애플리케이션 아키텍처와 쉽게 통합하고 트랜잭션 사용자 인터페이스를 개선했다. 플랫폼 강화로 바운드산(BoundSan), 인트산(IntSan), CFI, 섀도 호출스택(Shadow-Call Stack) 등 보안 핵심 구성 요소에서 컴파일러 기반의 살균제(sanitizer) 사용을 확대하고, 안드로이드 11 이상을 대상으로 하는 애플리케이션에서 힙 포인터 태깅(heap pointer tagging)을 활성화하여 애플리케이션 프로덕션 단계에서 메모리 문제를 쉽게 찾을 수 있다. 안전한 스토리지 및 데이터 공유를 위해 애플리케이션에서 블로브스토어 매니저(Blobstore Manager)를 통해 다른 애플리케이션과 데이터 블롭을 쉽고 안전하게 공유할 수 있다. 또한, 안드로이드 11은 ISO 18013-5 호환 모바일 운전 면허증과 같은 신원 확인 문서의 안전한 저장 및 검색을 위한 플랫폼 지원을 추가했다.[10]
- 업데이트 및 호환성
구글은 안드로이드 10부터 생태계 전반의 보안과 개인정보 보호 및 일관성을 개선하기 위해 구글 플레이 시스템 업데이트에 대한 투자를 확대했다. 안드로이드 11에는 업데이트 가능한 12개의 새로운 모듈을 추가해 총 22개의 모듈을 갖췄다. 안드로이드 11의 주요 특징으로는 안드로이드 장치의 중요한 개인정보 보호 제어에 대한 사용자 및 개발자의 액세스를 표준화하는 권한 모듈, 범위지정 스토리지 관련 개인정보 보호 노력에 필수적인 미디어 제공 업체 모듈, 성능을 최적화하고 전체적으로 일관된 API를 보장하는 NNAPI 모듈이 있다. 애플리케이션 호환성 부문에서도 안드로이드 11은 플랫폼 업데이트 영향을 최소화하기 위해 새로운 프로세스와 개발자 도구 및 출시 이정표를 추가했다. 안드로이드 개발 정책을 바꾸면 운영체제가 더 유용하고 안전하여 성능이 향상될 수 있지만, 변경 중 일부는 개발자 애플리케이션에 영향을 줄 수 있는 동작 변경을 최소화했다. 손쉬운 테스트 및 디버깅을 지원하기 위해 개발자가 호환성 테스트 과정에서 많은 주요 변경 사항을 토글 방식으로 제어할 수 있다. 개발자 옵션과 디버그 브리지(adb)에서 개별적으로 변경 사항을 강제로 활성화하거나 비활성화 할 수 있다. 이를 통해 더 이상 대상 SDK 버전을 변경하거나 기본 테스트를 위해 앱을 다시 컴파일 할 필요가 없어졌다. 또한, 개발자들이 초기 애플리케이션 호환성을 준비하는 것이 최종 변경에 대한 명확한 날짜 없이 이뤄지고 있다는 의견에 대해 안드로이드 11에서는 플랫폼 안정성(Platform Stability)을 출시했다. 최종 SDK, NDK API, 애플리케이션에 영향을 줄 수 있는 최종 내부 API, 시스템 동작도 포함되어 플랫폼 안정성 버전에 맞춰 애플리케이션의 최종 개발 및 테스트를 계획할 수 있다.[10]
- 카메라 개선
마법사 디코더 API(mage Decoder API)를 사용하면 HEIF 파일에 저장된 이미지 시퀀스 애니메이션을 디코딩 및 렌더링 할 수 있다. 고품질 자산을 사용하면서 네트워크 데이터와 응용 프로그램 패키지(APK) 크기에 미치는 영향을 최소화한다. HEIF 이미지 시퀀스는 애니메이션 GIF와 비교해 이미지 시퀀스 파일 크기를 크게 줄일 수 있으며, 새로운 NDK API를 통해 애플리케이션은 그래픽과 포스트 프로세싱을 위해 네이티브 코드에서 이미지를 디코딩 및 인코딩하고, 외부 라이브러리를 번들로 제공할 필요가 없어 더욱 작은 APK 크기를 유지한다. 또한, 기본 디코더는 지속적인 플랫폼 보안 업데이트를 위해 안드로이드 프로세스를 활용하며, 카메라 촬영시 음소거 기능이 추가되어 애플리케이션이 새로운 API를 사용하여 세션이 활성화된 동안 방해요소의 영향을 받지 않는다. 특히, 카메라 촬영 시 음소거 기능이 추가되어 애플리케이션이 새로운 API를 사용하여 세션이 활성화된 동안 벨 소리, 알람, 알람 진동 등의 방해요소가 영향을 주지 않도록 오프(off)기능이 추가되었다. 보케 모드(Bokeh modes)는 메타 데이터 태그를 사용해 이를 지원하는 장치의 카메라 캡처 요청으로 활성화 할 수 있다. 사진 촬영은 최고 품질 캡처를 제공하는 반면 연속 모드는 비디오 촬영과 같은 센서 출력을 유지한다.[10]
활용[편집]
구글은 자사의 모바일 플랫폼 안드로이드가 사용자들의 손바닥 위를 넘어 그들의 손목과 자동차, 방 안과 거실까지, 모든 곳에 존재하길 원한다. 안드로이드는 훨씬 전부터 우리의 상상을 뛰어넘는 기묘한 장소들에서 존재해왔다.[11]
- 안드로이드 냉장고: 파나소닉은 이미 오래전 클라우드 기반의 안드로이드 전자레인지를 개발한 바 있다. 음식 조리법이나 해동법을 검색 가능하다는 것이 이 기기가 내세운 특별한 점이다. 이 외에도 안드로이드 기반의 밥솥도 개발했는데, 이 밥솥의 경우에는 RFID를 통해 안드로이드 애플리케이션을 이용한 조리법 공유가 가능하다. 이러한 스마트 가전들은 우리의 일상에 많은 도움과 즐거움을 줄 수 있는 존재들이다. 특히 주방에서 오랜 시간을 보내는 주부들에겐 부엌에서의 시간이 마법같이 달라지는 계기가 될 수도 있다.[11]
- 안드로이드 오토(Android Auto): 디스플레이가 탑재된 차량을 안드로이드 기반의 스마트폰과 연결하여 스마트폰의 편리한 기능을 원활하게 사용할 수 있게 한다. 안드로이드 오토를 이용하면 운전자들이 가장 많이 사용하는 내비게이션 및 미디어(음악 듣기 등), 커뮤니케이션(전화, 메시지) 등의 기능을 구글 어시스턴트를 통해 음성으로 제어할 수 있다. 안드로이드 오토의 주요 기능들은 구글 어시스턴트를 통해 음성 명령으로 조작된다. 내비게이션 기능에는 카카오내비 애플리케이션이 기본애플리케이션으로 탑재되어 있으며 차량용 디스플레이에 최적화된 사용자 인터페이스로 스마트한 드라이빙을 경험할 수 있다. 미디어에는 벅스, 멜론 등 인기 음악 및 팟 캐스트 앱을 사용할 수 있다. 주행 중에도 듣고 싶은 음악을 언제든지 음성 명령으로 재생할 수 있으며, 내비게이션 안내 멘트가 나올 때는 자동으로 음량을 줄여주기도 한다. 커뮤니케이션에는 주행 중 언제든지 음성 명령을 통해 전화를 걸고, 메시지를 보내고, 미처 확인하지 못한 메시지는 음성으로 들을 수도 있다. 구글 어시스턴트는 차 안에서 안드로이드 오토 기능을 더 안전하게 사용할 수 있도록 음성 명령 기능을 지원하며, 일정, 오늘의 날씨, 검색 등 기존 구글 어시스턴트의 기능들도 차 안에서 즐길 수 있도록 한다.[12]
- 안드로이드 프린터: HP는 8.8cm의 안드로이드 기반 터치스크린을 장착해 애플리케이션을 실행하거나 게임을 즐기고, 문서를 스캔할 수 있는 포토 스마트e 스테이션 c510 프린터 모델을 출시했다. 이러한 유형의 기기 군은 완전히 새로운 개념도 아니고, 단순히 프린터에 태블릿을 부착한 형태도 아닌 애매한 위치에서 어느 정도의 수요를 유지하고 있다. 폴라로이드 역시 이와 유사한 안드로이드 기반 카메라 겸 프린터 제품을 선보인 바 있지만 이러한 제품들의 개발 의도와 상관없이 안드로이드 킷캣 자체에 인쇄 기능이 있는 이상 특별히 존재할 이유는 없다.[11]
- 안드로이드 거울: 일본의 세라쿠 코퍼레이션(Seraku Corporation)은 욕실 거울인 동시에 정보 터미널의 역할까지 수행하는 스마트 베이신(Smart Basin)을 시연한 바 있다. 이 욕실 가구 겸 전자 기기는 수량계 기능은 물론 체중 관리 및 내장 의료 기능까지 제공한다. 거울 역시 실제 거울이 아닌 숨겨진 안드로이드 태블릿에 의해 작동하는 반사 디스플레이다. 거울과 전자기기로서 흥미로운 스마트 욕실의 첫걸음이다.[11]
비교[편집]
아이오에스와 안드로이드는 각기 다른 특징을 갖추고 있다. 먼저 아이오에스(ios)는 애플 의 아이폰, 아이팟 터치, 아이패드 등에 내장된 모바일 운영체제다. 아이오에스에 대한 모든 권리를 애플이 소유하고 있음으로 아이오에스는 오직 애플만 사용할 수 있다. 소스 코드를 비공개하고, 운영체제의 소유권도 온전히 애플에만 있다는 것이다. 그 때문에 아이오에스는 아무 애플리케이션이나 설치할 수 없으며 오직 애플앱스토어에서만 애플리케이션을 내려받아야 한다. 이는 아이오에스의 장점으로 꼽히는 점으로 애플 앱스토어는 강력하게 사전 검사를 하기에 실행이 안 되거나, 완성도가 떨어지거나, 악성 코드가 섞여 있는 애플리케이션이 올라오는 경우는 매우 드물다. 폐쇄형 플랫폼, 클로즈 소스 로 보안성이 강하기 때문에 다른 기기와 호환은 불가능하지만 아이클라우드(iCloud) 시스템으로 같은 애플의 제품과 컴퓨터의 문서, 애플리케이션, 연락처, 사진 등을 공유할 수 있다. 하지만 전용 프로그램인 아이튠즈 를 이용해야 파일을 전송받을 수 있으며, 지원하는 파일 형식이 다양하지 않아서 별도로 파일을 기기에 맞춰 변환해야 하는 번거로움이 있다. 이와 반대로 구글은 2007년 11월 안드로이드 플랫폼을 휴대용 장치 운영체제로서 무료로 공개한다고 발표했다. 다시 말해, 구글에서 무료로 배포하고 기업이나 사용자는 각자 안드로이드 프로그램을 독자적으로 개발해 탑재할 수 있게 된 것이다. 또한, 응용 프로그램을 사고팔 수 있는 구글 플레이(Google Play)를 제공하며, 각 제조사 혹은 통신사별 응용 프로그램 마켓이 함께 운영되고 있다. 특히 구글에서 배포한 운영체제이기 때문에 구글의 웹서비스 와 높은 호환성을 갖고 있다. 안드로이드의 장점으로는 개방성을 꼽는다. 사용자가 자신의 기호에 맞춰 운영체제를 커스터마이징 할 수 있는데 안드로이드 바탕화면의 위젯이 이러한 커스터마이징을 잘 나타내준다. 그리고 장치를 유에스비(USB)로 인식하기 때문에 파일 삽입이 유용하다는 점도 있다. 그렇지만 개방된 플랫폼이다 보니 보안이 취약하여 악성 코드 혹은 바이러스에 노출된다는 점이 있다.[13]
각주[편집]
- ↑ 콘파냐, 〈안드로이드(Android) 정리 시작 배경과 역사〉, 《티스토리》
- ↑ 모빌리티, 〈(안드로이드 #2)안드로이드의 특징 9가지〉, 《티스토리》, 2017-06-06
- ↑ 3.0 3.1 3.2 3.3 3.4 Charlezz, 〈안드로이드의 구조〉, 《개인 사이트》, 2018-10-11
- ↑ 준, 〈iPhone과 Android 개발의 장단점〉, 《티스토리》, 2011-01-17
- ↑ 싱글싱글life, 〈구글 안드로이드 10의 새로운 기능 10가지 알아보기〉, 《네이버 블로그》, 2019-10-16
- ↑ JJun, 〈Android NFC〉, 《다음 블로그》, 2013-08-05
- ↑ 개발자 김태우, 〈기기 호환성 (Device Compatibility)〉, 《티스토리》, 2015-05-15
- ↑ 8.0 8.1 8.2 원수연 기자, 〈보안 취약점 '1위' 안드로이드, 안전하게 쓰려면?〉, 《앱스토리》, 2020-03-25
- ↑ 이안이아빠, 〈한눈에 보는 안드로이드의 역사〉, 《티스토리》, 2020-04-01
- ↑ 10.0 10.1 10.2 10.3 〈구글 안드로이드 11 개발자 프리뷰 배포, 주요 특징을 살펴보자〉, 《일분》, 2020-02-20
- ↑ 11.0 11.1 11.2 11.3 Greenbot, 〈“여기에도 있다니?” 일상 속의 안드로이드 기기 7선〉, 《아이티월드》
- ↑ 김종율 기자, 〈‘안드로이드 오토’의 주요 기능들〉, 《오토모티브리포트》, 2018-09-03
- ↑ 현대모비스, 〈스마트폰 운영체제 비교〉, 《네이버 블로그》, 2016-03-21
참고자료[편집]
- 콘파냐, 〈안드로이드(Android) 정리 시작 배경과 역사〉, 《티스토리》
- Charlezz, 〈안드로이드의 구조〉, 《개인 사이트》, 2018-10-11
- 모빌리티, 〈(안드로이드 #2)안드로이드의 특징 9가지〉, 《티스토리》, 2017-06-06
- 준, 〈iPhone과 Android 개발의 장단점〉, 《티스토리》, 2011-01-17
- 싱글싱글life, 〈구글 안드로이드 10의 새로운 기능 10가지 알아보기〉, 《네이버 블로그》, 2019-10-16
- JJun, 〈Android NFC〉, 《다음 블로그》, 2013-08-05
- 개발자 김태우, 〈기기 호환성 (Device Compatibility)〉, 《티스토리》, 2015-05-15
- 원수연 기자, 〈보안 취약점 '1위' 안드로이드, 안전하게 쓰려면?〉, 《앱스토리》, 2020-03-25
- 이안이아빠, 〈한눈에 보는 안드로이드의 역사〉, 《티스토리》, 2020-04-01
- 〈구글 안드로이드 11 개발자 프리뷰 배포, 주요 특징을 살펴보자〉, 《일분》, 2020-02-20
- Greenbot, 〈“여기에도 있다니?” 일상 속의 안드로이드 기기 7선〉, 《아이티월드》
- 김종율 기자, 〈‘안드로이드 오토’의 주요 기능들〉, 《오토모티브리포트》, 2018-09-03
- 현대모비스, 〈스마트폰 운영체제 비교〉, 《네이버 블로그》, 2016-03-21
같이 보기[편집]