2016년 12월 12일 월요일

[안드로이드] 안드로이드의 특징과 역사

안드로이드

  • 구글의 주도하에 여러 회사들이 Open Handset Aliance 컨소시엄으로 진행하고 있는 모바일 OS
  • 2008년 모바일 첫 장비가 출시된 이후, 현재 모바일, TV, wearable, Auto 등으로 범위가 확장되고 있다.

특징

  • 운영체제 커널은 리눅스 커널을 기반으로 한다. 오픈소스이기 때문에 여러 제조사에서 커널을 변경하여 배포하기도 한다.
  • 공식 개발언어는 자바를 이용하며, 추가적으로 C를 이용해 개발할 수 있는 NDK를 지원한다.
  • OpenGL, SQLite 등 검증된 주요 라이브러리를 모두 포함하고 있다.
  • 플랫폼에 내장된 빌트인 애플리케이션과 일반 사용자가 만든 프로그램이 동일한 레벨로 취급된다.
  • 다양한 제조사, 다양한 기기에 이용되다 보니 파편화 이슈가 심하다.

아키텍쳐

안드로이드_아키텍쳐.PNG
  1. 리눅스 커널을 이용하여 하드웨어 등 저수준 관리 기능을 담당한다.
  2. 라이브러리들과 런타임 머신이 커널위의 계층에 존재한다.
    • 라이브러리 : OpenGL, SQLite, WEBKit 등
    • 런타임 : Dalvic, JAVA 코어 라이브러리, ART(5.0 이후)
  3. 안드로이드에서 자바 라이브러리 형태로 제공하는 API를 프레임워크 계층에 구현했다.
  4. 빌트인 프로그램 및 사용자가 만든 프로그램이 응용프로그램 계층에 존재한다.

안드로이드 History

  • 네이밍규칙 : 알파벳 순서의 디저트 이름

2.1~2.3

  • 버전명
    • 2.1 : 이클레어 (API 7)
    • 2.2 : 프로요 (API 8)
    • 2.3 : 진저브레드 (API 9~10)
  • 주요 특징
    • WallPapersd카드에 앱 설치, 플래시 지원, NFC 지원xhdpi 해상도 지원
    • 태블릿을 지원하기 직전 OS
    • 지금은 사용하는 사람이 없다.(간혹 중소업체의 IoT 디바이스에서 사용)

3.0~3.2

  • 버전명 : 허니컴 (API 11~13)
  • 주요 특징
    • FragmentActionBar등 태블릿 전용 UI 지원, 시스템 Clipboard 지원
    • 드래그 & 드롭 기능 지원
    • Animator 지원(더 유연한 애니메이션 가능)
    • 유일하게 휴대폰과 태블릿으로 쪼개진 버전. (버림받았다.)
    • 지금은 사용하는 사람이 없다.

4.0~4.04

  • 버전명 : 아이스크림 샌드위치 (API 14~15)
  • 주요 특징
    • 휴대폰 & 태블릿 통합 API 제공 - 휴대폰에서도 ActionBar, Fragment 등 3.0에서 추가된 기능 이용가능
    • 안드로이드 OS중 하위 버전과 가장 많은 차이를 보인 OS
    • WifiDirect 지원, 온도계, 습도계 센서 추가, GridLayout 추가
    • 하드웨어 가속 지원(화면 렌더링에 그래픽카드를 이용)

4.1~4.3

  • 버전명 : 젤리빈 (API 16~18)
  • 주요 특징
    • 현재 (${today}) 기준으로 시즌 off된 휴대폰의 최소 버전이다.
    • 4.1(API 16)
      • 메모리 관리방식
      • Camera, Audio 라이브러리 개선
      • Android Beam 지원
      • Notification 스타일 변경
    • 4.2(API 17)
      • DayDream 추가
      • Second Display 지원
      • 잠금화면 위젯
      • 멀티 유저(다중 계정)
      • RTL layout,
    • 4.3(API 18)
      • Bluetooth Low Energy(BLE) 지원
      • Wi-Fi Scan only Mode 추가(WiFi로 유저의 위치정보를 받기 위해)
      • Multimedia 라이브러리 개선
      • OpenGL 3.0 지원, Mipmap 지원, optical bound layout 추가
      • 주소록 API 추가(Contacts Provider)

4.4

  • 버전명 : 킷캣 (API 19, 20)
  • 주요 특징
    • Print Framework추가(클라우드 프린팅 가능)
    • 오디오 터널링 지원
    • Storage Access Framework 추가(저장소 접근 방법 변경)
    • reusable bitmap, Animator pause 추가
    • Immersive Full Screen(전체화면 상태인데 사용자의 터치동작에 따라 상태바가 보여짐)

5.0~5.1

  • 버전명 : 롤리팝 (API 21, 22)
  • 주요 특징
    • 달빅 가상머신을 ART 런타임 으로 대체
    • 64비트 지원
    • 머티리얼 디자인
    • Heads-Up 알림(기존의 작업을 방해하지 않고 다이얼로그 처럼 사용자의 액션을 받는 노티피케이션)
    • 알림 기능 개선(잠금상태에서 알림 받을 수 있음)
    • 카메라 성능 개선
    • Chromium 엔진을 이용하도록 WebView변경
    • 다중 SIM카드 지원
    • 아파치 HTTP 클래스 지원 중단

6.0

  • 버전명 : 마시멜로 (API 23)
  • 주요 특징
    • Runtime 퍼미션(앱을 실행할 때 필요한 퍼미션을 요청)
    • 배터리 절약 모드(Doze, App Standby 모드) - Doze모드에서 알람, 비동기 네트워크 처리 등이 제한되므로 신경써야함
    • 텍스트 선택 UI변경
    • 지문인식 지원
    • 앱링크
    • 구글 드라이브에 자동으로 백업 - 하위 버전에서는 수동으로 구현해야 함
    • 블루투스 스타일러스 펜 지원
    • 4K 디스플레이 모드 추가

7.0

  • 버전명 : 누가 (API 24)
  • 주요 특징
    • 향상된 Doze모드 - Doze 동작이 2단계로 변경
    • 백그라운드 최적화
      • CONNECTIVITY_CHANGE 액션을 메니페스트에 등록하여 사용불가(앱 내에서 등록 및 사용은 가능)
      • ACTION_NEW_PICTUREACTION_NEW_VIDEO 사용불가
    • 설정에서 스크린 크기 변경 가능 - 모든 크기의 스크린 사이즈에서 제대로 UI가 구성되는지 확인할 필요 있음
    • 멀티윈도우 지원
    • JIT/AOT 동시 지원 컴파일러 사용
    • Vulkan API 사용가능
    • Quick Setting 영역의 타일 API 사용가능

댓글 없음:

댓글 쓰기