크리에이티브 커먼즈 라이선스
Creative Commons License

안드로이드는?

- 모바일 플랫폼을 위한 운영체재로 구글의 개방형 플랫폼이다.

- 이 플랫폼은 리눅스 커널 기반의 운영체재이고, 미들웨어 및 핵심 응용 프로그램을 포함하고 있다.


안드로이드 역사는?

- 2005년 7월 구글이 안드로이드사를 인수함

- 2007년 11월에 안드로이드 베타 공개

- 2008년 9월 23일에 애플파이 공개함

- 2008년 10월에 아파치 라이선스로 오픈 소스로 선언함

- 2009년 4월에 리눅스 커널 2.6.27 기반의 안드로이드 1.5 컵케이크 최초로 공개

- 2009년 9월에 리눅스 커널 2.6.29 기반의 안드로이드 1.6 도넛 공개

- 2009년 10월에 리눅스 커널 2.6.29 기반의 안드로이드 2.0, 2.1 이클레어 공개

- 2010년 5월에 리눅스 커널 2.6.32 기반의 안드로이드 2.2. 프로요 공개

- 2010년 12월에 리눅스 커널 2.6.35 기반의 안드로이드 2.3 진저브레드 공개

- 2011년 2월에 리눅스 커널 2.6.36 기반의 안드로이드 3.0 / 3.1 / 3.2 허니콤 공개

- 2011년 10월에 리눅스 커널 3.0.1 기반의 안드로이드 4.0 아이스크림 샌드위치 공개

- 2012년 7월에 리눅스 커널 3.0.31 기반의 안드로이드 4.1 ~ 4.3 젤리빈 공개

- 2013년 10월에 리눅스 커널 3.4 기반의 안드로이드 4.4 킷캣 공개


안드로이드 플랫폼 구조는?

File:Diagram android.png


각 레이어에 대한 설명?

  • 리눅스 커널
    • 디바이스 및 시스템 제어 기능을 수행
    • 디스플레이 드라이버, 카메라 드라이버, 플래시 메모리 드라이버, 바인더 드라이버, 키패드 드라이버, 와이파이 드라이버, 오디오 드라이버, 파워 매니지먼트
  • 라이브러리 레이어
    • 그래픽, 멀티미디어, SQLite, WebKit, Libc 등의 플랫폼 라이브러리 레이어
  • 안드로이드 런타임
    • 달빅VM, 코어 라이브러리를 포함한 안드로이드 런타임 레이어
  • 애플리케이션 프레임워크
    • 일반 애플리케이션의 개발 및 실행을 지원하는 환경을 제공
  • 애플리케이션들
    • 자바로 개발된 일반 애플리케이션 레이어

안드로이드 파일 시스템 구성도
  • 안드로이드 파일 시스템 구조 / 아키텍처 / 레이아웃 상세
    • http://techblogon.com/android-file-system-structure-architecture-layout-details/

partition-size-in-android-device


안드로이드 애플리케이션 라이프 사이클

  • 애플리케이션 자신에 의해 직접 컨트롤 되지 않음

  • 시스템 실행 상태(얼마나 사용자에게 중요한가?, 시스템의 여유 메모리가 얼마나 남았는가?) 에 따라 결정됨

  • 일반적인 버그는 onReceiveIntent() 에서 발생함.

(Android LifeCycle sketch flow)


안드로이드 애플리케이션 구성요소

  • Activity, Intend Receiver, Service, Content Provider 등 4가지로 구성

  • 사용하기로 결정된 컴포넌트는 Android Manifest.XML 파일에 기록해야 함

Activity란?
  • 애플리케이션에서 하나의 화면을 지칭함
  • Activity base class를 상속하여 구현함
  • 다른 화면으로의 이동한 새로운 Activity를 시작하는 것과 같음
Intent와 Intent Filter
  • 화면과 화면 사이를 이동할 때 사용
  • 애플리케이션이 무엇을 하기를 원하는지에 대한 정보를 담고 있음
  • 가장 중요한 부분은 Action과 data가 어떻게 동작할 것인지에 대한 자료구조이다.

Intent Receiver
  • 외부 이벤트(통화가 걸려오거나, 데이터 네트워크 접속이 활성화 되거나 등)를 처리하는데 사용
  • NotificationManager를 이용하여 사용자에게 어떤 일이 발생했다는 것을 알려줌
Service
  • UI와 상관없이 실행되는 코드
  • 재생목록에서 노래를 재생하는 미디어 플레이어 같은 것
Content Provider
  • 데이터가 다른 애플리케이션과 공유할 필요가 있을 때 매우 유용하다.
  • 다른 애플리케이션이 데이터를 저장하거나, 가져오는 것과 같은 작업을 할 수 있도록 해준다.


저작자 표시 비영리 변경 금지

'모바일' 카테고리의 다른 글

안드로이드 APP 개발(1)  (0) 2014/06/15
Posted by -세티- 트랙백 0 : 댓글 0