웹개발 기초/android_studio

안드로이드 개요

미미_밍 2024. 10. 11. 17:00

안드로이드란 무었일까?

프로그래밍을 배우기 전 안드로이드 에 대해 자세히 알아보자 

 

 

 

스마트폰이란 ?

통화기능은 물론 mp3,카메라, dmb 등 어플리케이션을 통한 여러 기능을 가지며 컴퓨터로는 할 수 없던 다양한 기능을 내장하게 된 휴대전화를 말한다. 

 

스마트폰의 역사 

 

1992 년 ibm 이 제작한 사이먼을 시초로 한다.  사이먼은 달력, 주소록, 계산기, 이메일 기능 등을 보유하여 당시 파격적이라는 평가를 받았다. 이후 1996 년 노키아가 노키아 9000 을 출시했고 2002 년에는 마이크로소프트가 pda 폰을 출시하여 널리 사용되었다. 이어서 2007년에 아이폰, 2008년에 안드로이드 운영체제를 탑제한 안드로이드폰 등이 만들어지며 대중화 되었다. 

 

스마트폰의 운영체제

 

스마트폰의 운영체제는 주로 세개로 나뉜다.

-안드로이드

-아이폰

-윈도우

외에도 우분투나 블랙베리 등 여러가지 운영체제가 있으나 점유율이 미비하다. 

 

 

안드로이드

안드로이드는 구글이 안드로이드를 인수하면서 시작되었다. 2008년 이후 계속 업그레이드 되어 2023 년 말을 기준으로 14까지 발표되었다. 안드로이드 버전명은 코드명으로 구분되어 발표되는데 영어의 알파벳 순으로 음식 이름을 붙이다가 10.0 버전부터는 Android 10(Q) 로 부르며 이후로는 android 11(R) android12(S) 등으로 부른다. 

 

*앱 이라는 용어는 초반에 아이폰응용프로그램을 줄여 나타내는 말이었지만 요즘은 모든 어플리케이션을 칭한다. 

 

 

안드로이드의 주요 기능

 

안드로이드는 모바일 기기를 위한 운영체제이다. 안드로이드 SDK 는 java 기반으로 안드로이드 앱을 개발할 수 있는 api 를 제공한다. 

 

*SDK Software Development Kit의 약자 소프트웨어 개발 도구 모음이라고 한다.  API, IDE, 문서, 라이브러리, 코드 샘플 등 안드로이드 시뮬레이터도 이에 포함된다.

 

*API 어떤 기능을 제공하는 모듈 , 인터페이스를 말한다. 두 소프트웨어가 서로 통신할 수 있게 해주며 사전에 만들어 놓은 모듈을 api 를 통해 다른 소프트웨어가 가져다 쓸 수 있게 한다. - sdk 에 포함된 기능이다. 

 

안드로이드의 특징

안드로이드는 OHA(open handset Alliance) 에 포함된 여러 기업이 함께 개발하는 형식을 띄고 있지만 대부분은 구글이 개발하는 것으로 알려져 있다. 안드로이드의 특징을 살펴보자

 

1) 핵심커널은 리눅스로 구성되어 있다. 안드로이드 커널은 리눅스 커널에서 모바일용으로 적합한 내용을 추출하여 필요한 기능을 추가한 것이다.  

 

2) 개발언어로 java 를 사용한다. 이클립스 및 안드로이드 스튜디오를 사용하여 개발한다. +높은 수준의 어블리케이션 제작을 위한 NDK 도 제공함으로써 c++ 기반 개발이 가능하게 한다. 

 

3) sdk 에 많은 라이브러리를 포함하고 있어서 쉽게 개발할 수 있다. sqlLite, openGL 등도 지원

 

4) 오픈소스를 지향하기 때문에 거의 모든것을 무료로 이용할 수 있다. 

 

5) 지속적 업그레이드를 제공한다. 

 

* NDK는 Android에서 C 및 C++ 코드를 사용할 수 있게 해주는 도구모음이다.

 

안드로이드의 구조

응용 프로그램단 : 일반적인 응용 프로그램, 달력, 구글맵 등 가장 많이 사용하는 앱이다. 모두 java로 작성

 

응용 프로그램 프레임워크 : 안드로이드 api 가 존재하는 곳 앱은 api 를 통해 안드로이드 커널에 접근 가능 즉 안드로이드 하드웨어에 접근할때는 java 에서 접근하는게 아니라 api 통해서만 가능하다. 

 

안드로이드 런타임 : java 코어 라이브러리와 달빅 가상머신 or 아트 런타임으로 구성된다. 안드로이드는 java 로 프로그램하지만 java 가상머신이 아닌 달빅 가상 머신이나 아트 런타임을 사용한다. -라이선스 문제가 있어서 jvm 안쓰고 다른 가상머신 사용 

 

라이브러리 : 안드로이드에서 사용되는 시스템 라이브러리는 시스템 접근 때문에 C 로 작성되어 있으며 세밀한 조작이 가능하다. 

 

리눅스 커널 : 하드웨어 운영과 관련된 기능이 들어있다. 주로 메모리관리, 디바이스 드라이버, 보안 등이다.