본문 바로가기
전공공부/모바일 프로그래밍

안드로이드 프로그래밍 기초사항

by 시아나 2021. 4. 8.

1. 스마트폰 - 안드로이드와 IOS

 

스마트폰 이미지

 

스마트폰은 운영체제가 탑재되어 있는 작은 컴퓨터와 같습니다.

모바일의 운영체제는 크게 두개로 나눌 수 있는데 이것이 다들 잘 아시는 안드로이드와 ios 입니다.

아래 표는 안드로이드와 IOS를 간단하게 비교한 것입니다.

 

 안드로이드IOS
제조사구글애플
개발 언어java(UI), Kotlin(UI), C, C++C, C++, Objective-C, Swift
커널리눅스Hybrid(XNU)
웹사이트android.comapple.com/ios
상요자 인터페이스Graphical(multi-touch)Cocoa Touch(Multi-touch, GUI)

 

제가 공부할 것은 안드로이드이므로 이제 안드로이드에 대해 말해 보겠습니다.

안드로이드는 버전 9.0 까지는 디저트 이름을 이용하여 버전의 이름을 붙였습니다.

 

버전이름이미지
5.0롤리팝[Lollipop]
6.0마시멜로[Marshmallow]
7.0누가[Nougat]
8.0오레오[Oreo]
9.0파이[Pie]

 

순으로 업데이트가 되었습니다.

 

 

2. 안드로이드의 특징

 

  • 애플리케이션 프레임 워크(Application framework) : 안드로이드는 컴포넌트(component)의 재사용을 가능하게 하는 애플리케이션 프레임 워크를 가집니다. => 이는 3. 안드로이드 구조에서 더 자세히 설명 드리겠습니다.
  • 자바 언어 사용 : 안드로이드 애플리케이션은 자바로 작성됩니다. 자바를 사용하신 적이 있으신 분은 아시겠지만 자바를 사용하기 위해서는 자바 가상 머신(JVM)이 필요합니다. 안드로이드에서는 데스크탑에 비하여 처리 속도가 낮고 메모리를 부족하기 때문에 이를 보완하기 위해 자체적으로 가상머신을 구현하였습니다. 이 가상머신을 APT 가상 머신이라고 부릅니다.
  • 최적화된 그래픽
  • SQLite 데이터베이스 지원
  • 각종 오디오, 비디오 규격 지원
  • 블루투스, EDGE, 3G, WIFI 지원
  • 풍부한 개발 환경 제공 장치 : 에뮬레이터, 메모리와 성능 프로파일링, 안드로이드 스튜디오를 제공합니다.

 

 

3. 안드로이드 구조

 

안드로이드는 소프트웨어를 스택처럼 쌓아둔 구조로 되어있습니다. 이 때문인지 구글에서는 안드로이드를 소프트웨어 스택이라고 부릅니다.

아래 그림은 안드로이드 운영체제의 주요한 요소들입니다.

 

 

안드로이드의 구조(출처 : 안드로이드 홈페이지)

 

 

앞으로 안드로이드 프로그래밍을 하다보면 느끼겠지만 안드로이드에서는 자바나 다른 프로그래밍 언어에서 사용하는 main이 없습니다. 대신 Java API Framework가 main역할을 하여 앱을 실행시킵니다.

 

4. 애플리케이션 기초 개념

 

  • 애플리케이션 컴토넌트(Component) : 컴포넌트는 애플리케이션을 만드는 빌딩 블록입니다. 각 컴포넌트들은 하나의 독립된 엔티티로 존재하고 정해진 역할을 수행합니다. 쉽게 말해서 애플리케이션을 구성하는 하나의 파츠라고 할 수 있을 것 같습니다. 컴포넌트에는 액티비티, 서비스, 방송 수신자, 콘텐트 제공자가 있습니다.

 

  • 액티비티(Activity) : 액티비티는 사용자 인터페이스 화면을 가지고 하나의 작업을 담당하는 컴포넌트입니다. 쉽게 말해서 안드로이드의 화면 하나를 가리키는 것이라고 할 수 있습니다. 모든 액티비티는 Activity 클래스를 상속받아서 작성합니다.

 

  • 서비스(Service) : 서비스는 백그라운드에서 실행되는 컴포넌트입니다. 주로 오랫동안 실행되는 작업이나 원격 프로세스를 위한 작업을 할 때 사용됩니다. 예를 들면 배경음악을 깔때 사용하는 것이라고 할 수 있을 것 같습니다. 모든 서비스는 Service 클래스를 상속받아서 작성됩니다.

 

  • 방송 수신자(Broadcast Receiver) : 방송(주로 시스템이 발생시킴)을 받고 반응하는 컴포넌트입니다. BroadcastReceiver 클래스를 상속받아서 작성합니다. 방송의 예로는 화면이 꺼졌다거나, 배터리 사용 가능량을 알린다든지, 사진이 촬영되는 등을 알리기위해 방송을 사용합니다.

 

  • 콘텐트 제공자(Content Provider) : 콘텐트 제공자는 데이터를 관리하고 다른 애플리케이션에 데이터를 제공하는 컴포넌트입니다. 이때 데이터는 파일 시스템이나 데이터베이스, 웹상에 저장된 데이터를 의미합니다. 콘텐트 제공자는 ContentProvider 클래스를 상속받아 작성합니다.

 


<참고>

안드로이드는 다른 애플리케이션의 컴포넌트를 실행할 수 있습니다.

안드로이드의 구조 중에 Java API Framework를 사용하여 다른 애플리케이션의 컴포넌트를 사용할 수 있습니다.

예를 들어 당신은 카메라 기능을 사용하고 싶습니다. 이를 위해 안드로이드 내의 카메라 어플리케이션의 액티비티를 사용하여 카메라 영상을 반환받을 수 있습니다.

 

다른 컴포넌트 호출 예시

 

 

'전공공부 > 모바일 프로그래밍' 카테고리의 다른 글

looper  (0) 2021.08.31
23일차  (0) 2021.07.28
국가근로 18일차  (0) 2021.07.21
Android Studio EditText이 비어있는지 확인하기  (0) 2021.04.27
애플리케이션 기본 구조  (0) 2021.04.09