[안드로이드]안드로이드란?/안드로이드 플랫폼/운영체제/시스템

dada·2021년 8월 23일
4

Android

목록 보기
1/16
post-thumbnail

✅공부배경

  • 안드로이드 개발자인데 안드로이드 관련 용어를 혼동하면 안되겠따! 싶어서 시작하는 포스팅!! 아자자~~

안드로이드=오픈소스 소프트웨어 스택

✅오픈소스 소프트웨어 스택

  • Android는 휴대할 수 있는 디바이스 기기를 위한 오픈소스 소프트웨어 스택
  • 데이터를 저장할 수 있는 자료구조의 종류 중 하나인 스택에 비유해 Android를 '오픈소스 소프트웨어 스택'이라고 부름
    그렇다면, 오픈소스/스택 이라는 단어가 붙는 이유를 하나씩 알아보자

스택?

  • 스택은 아래에서부터 위로 쌓여있는 모양인데 Android는 '소프트웨어'가 스택 형태로 쌓여있다는 의미에서 소프트웨어 스택이라고 말함
  • 가장 밑에 리눅스 커널->HAL/HID->Native Libraries+Android Runtime->Android Framwork->Apps 소프트웨어가 차례로 쌓여있는 구조
  • 즉, 이 구조를 통틀어 '소프트웨어 스택'이라 하며 결국 이 구조가 'Android'임

✅오픈소스?

  • 소프트웨어 스택이 비공개가 아니라 공개되어 있다는 것.
  • 누구나 Android를 구성하고 각 소프트웨어의 소스코드를 볼 수 있음.
  • 구글이 주도하는 오픈소스 프로젝트이기도함

Android vs Android 플랫폼 vs Android 프레임워크 vs Android 운영체제 vs Android 시스템

✅Android=Android플랫폼

  • 둘은 동일한 말임
  • 위에서 말한 Android 정의 중, 휴대할 수 있는 디바이스 기기를 위한 '오픈소스 소프트웨어 스택'이라고 설명한 것은 '스택'이라는 단어를 사용해 '무엇인가가 쌓여있는 구조'를 강조한 설명임
  • 즉, Android를 '스택'이란 단어를 사용하지 않고 설명할땐 Android는 '오픈소스 소프트웨어 플랫폼'이라고도 함

✅Android 프레임워크(=java API Framework):

  • 안드로이드 개발자문서-프레임워크
  • 4번째 층에 Android Framwork가 있는데 Android Framwork는 java API Framework라고도 부름
  • Android 프레임워크(=java API Framework)는 모든 안드로이드 App이 사용하는 toolkit임. 따라서 구글에서 만든 앱이든, 나 자신이 만든 앱이든 모든 앱은 같은 Android 프레임워크(=java API Framework=java API)를 사용해서 만들어짐
  • 당연히 Android 프레임워크(=java API Framework=java API)는 모두 java로 구현되어있음
  • Android Framework는 여러 Manager들로 구성되어 있음
  • 안드로이드 앱 개발자는 Android Framework가 제공하는 API를 사용하여 사용법에 맞게 코드만 작성하면 됨. 나머지 내부 동작들은 Android Framework의 몫임

✅Android운영체제

  • Android를 휴대할 수 있는 디바이스 기기(모바일 기기)의 운영체제로 채택하여 사용하기 때문에 'Android 운영체제'라고 부르기도함
  • Android를 운영체제라고 하는건 Android 플랫폼을 모바일 기기의 운영체제로 사용한다는 의미임

✅Android시스템

  • Android 운영체제=Android시스템
  • 운영체제를 영어로 Operating System이라고 하기때문에 Operating 빼고 Android System이라고 하는 것

요약

  • Android=오픈소스 소프트웨어 스택(구글 주도의 오픈소스 프로젝트)
  • Android=Android 플랫폼: 스택이라는 단어를 사용하지 않을때 '오픈소스 소프트웨어 플랫폼'
  • Android 프레임워크:=java API Framework=java API
  • Android 운영체제=Android 시스템:Android를 휴대할 수 있는 디바이스 기기(=모바일 디바이스)의 운영체제로 채택하여 사용한다는 의미

참고

choheeis.github.io

developer.android

profile
'왜?'라는 물음을 해결하며 마지막 개념까지 공부합니다✍

0개의 댓글