본문 바로가기
Develop/Android

ANDROID 안드로이드란?

by J0DEV 2021. 8. 6.
반응형

안드로이드 플랫폼이란?

플랫폼이란 기반이 되는 시스템을 뜻한다.

즉, 소프트웨어 적인 측면+하드웨어 적인 측면의 결합이라고 할 수 있다.

모바일 플랫폼은 모바일 기반 및 모바일 장치에 탑재되어 구동되는 소프트웨어라고 보면된다.

 

안드로이드 플랫폼은 구글에서 개발하여 모바일 장치를 위한 소프트웨어 스택으로 구성되어있다.

뿐만아니라 자바 언어를 이용하여 안드로이드 응용 프로그램이 개발 가능하다.

안드로이드 SDK(Software Development Kit)에는 개발에 필요한 기본적인 tool을 포함하여 api를 제공하고 있다.


안드로이드 특징

  1. Application Framework컴포넌트의 재사용 및 대체를 가능
  2. Dalvik virtual machine을 사용한다.
    • (달빅 가상 머신은 Java 가상머신과 같은 가상머신이다.)
  3. Optimized graphics를 제공한다.
    • 기본적으로 2D그래픽 라이브러리 제공 /OpenGL ES1.0 스펙에 기반한 3D 그래픽 라이브러리도 제공
  4. SQLite
    • 데이터를 저장하고 검색하기 위해 SQLite를 사용할 수 있다.
  5. 미디어 지원
    • 일반적인 오디오, 비디오, 정지 이미지 포맷을 지원 (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF등
  6. GSM 테크놀러지, 블루투스, 3G, WIFI, 카메라, GPS, 나침반, 가속도계 등 지원
    • 하드웨어에 의존적임
  7. 풍부한 개발환경
    • 디바이스 에뮬레이터, 디버깅 도구, 메모리 및 성능 프로 파일링 제공한다.
  8. 통합 브라우저 제공
    • 폰에서 사용하는 통합 브라우저 제공한다.

안드로이드 아키텍처

 

안드로이드 플랫폼은 여러개의 레이어로 구성되어있다.

가장 하단의 리눅스 커널에서는

운영체제에서 제공하는 기본적인 레이어가 탑재되어있으며

그 위에 라이브러리와 안드로이드 런타임이 동작한다.

라이브러리와 안드로이드 런타임 위로, 애플리케이션 프레임워크가 위치하고 가장 상단에는 이런 프레임 워크들을 기반으로 작성된 애플리케이션들이 존재한다.

 

자세히 살펴보면

  1. Linux Kernel
    • 안드로이드 플랫폼은 리눅스를 기반으로 탑재되는 플랫폼이다. 이 리눅스 커널에는 다양한 종류의 드라이버들과 전원을 관리하기위한 전원관리가 탑재되어 있어 다양한 하드웨어 리소스를 관리할 수 있다.
  2. Android Library
    • 라이브러리 계층에는 시스템에서 다양하게 사용되는 기능들이 탑재되어있다.
    • 안드로이드 개발자들은 애플리케이션 프레임워크를 통해서 사용할 수 있으며 여기에는 다양한 종류의 라이브러리 항목이 지원되고 있다.
  3. Android Runtime(ART)
    • 안드로이드 실행환경에서 달빅 가상머신은 모바일 장치를 위해 효율적으로 설계된 자바 가상 머신이다.
    • 자바 가상머신은 CPU에 최적화를 위한 바이트코드 인터프린터를 내장하고 효율적인 메모리 사용 가능하다.
    • 자바 컴파일러로 컴파일된 클래스들을 dk툴을 이용해 최소의 메모리 영역에 최적화된 달빅 Executable(실행)(.dex)포맷을 실행하는 구조를 제공하고 있다. 디바이스에서 다수의 가상머신 프로세스를 지원한다.
    • 안드로이드 실행환경의 코어 라이브러리는 자바 프로그래밍 언어의 핵심 라이브러리 기능을 제공하고 있으며 Data structures, Network Access, Utilities, Graphics, File access 등과 같은 여러가지 자바기능들을 내장하고 있는 부분이라고 할 수 있다.
  4. Application Framewrok
    • 애플리케이션 개발을 위한 기반 시스템(소프트웨어의 기반이 되는 골격구조)
    • 응용프로그램을 작성하고 컴포넌트 재사용을 손쉽게 사용할 수 있어 최적화된 개발환경을 사용할 수 있다.
    • 코어 플랫폼 서비스와 같이 애플리케이션 개발을 위한 다양한 관리자를 제공할 수 있다.
    • 하드웨어 서비스는 주로 블르투스, 와이파이와 같은 여러 하드웨어와 관련된 관리자의 도움을 받을 수 있다.
  5. Application
  • 개발자가 최종적으로 작성하게 되는 부분
  • 이미 개발되어 운용중인 소프트웨어나 개발자가 개발한 애플리케이션들이 여기에 속함

안드로이드 실행과정

  1. init을 통해 구동시작
  2. 구동이 시작하면 Zygote이 실행되면서 프로세스를 시작한다.
  3. 여기서 달빅 가상머신을 구동하게 된다.
  4. 가상머신이 탑제되고 여기에 시스템 서버와 함께 시스템 매니저가 런타임환경을 통해  구동되기 시작한다. 그럼 다양한 서비스가 시작되어 애플리케이션이 구동할수 있는 환경이 만들어 진다.

안드로이드 응용분야

  1. 스마트폰
  2. VOIP기술 활용 - 인터넷 전화기, 다양한 부가적인 기능 탑재 가능
  3. Set top box & Smart TV와 같은 가전 제품 제작
  4. 기타 등등

 

반응형

'Develop > Android' 카테고리의 다른 글

Android APK Decompile  (0) 2021.08.11
ANDROID HelloWorld!  (0) 2021.08.06