Practice makes perfect!

[코.활.안] 안드로이드 개요 및 개발 환경 본문

Study/Andriod with kotlin

[코.활.안] 안드로이드 개요 및 개발 환경

na0dev 2023. 4. 15. 15:15

2019년 3분기 자료에 따르면 전 세계에서 안드로이드 OS를 탑재한 스마트폰이 약 85%, 아이폰이 11% 정도를 차지하고 있다. 2008년 9월에 최초의 안드로이드 1.0 버전이 공개되었고, 모든 소스 코드를 공개하는 오픈소스로 선언되었다. 

 

주요 기능

- 모바일 기기를 위한 운영체제

- 안드로이드 SDK (Software Development Kit)는 Java를 기반으로 안드로이드 애플리케이션을 개발할 수 있는 API를 제공함

- 모바일용 데이터베이스인 SQLite 제공

- 모바일 기기에 내장된 각종 하드웨어(블루투스, 카메라, 와이파이..) 지원

 

특징

- 안드로이드는 여러 기업이 함께 개발하는 형식을 띠고 있지만, 대부분은 구글이 주도적으로 개발함

- 핵심 커널은 리눅스로 구성되어 있으며, 리눅스 커널에서 모바일용으로 적합한 내용을 추출하여 필요한 기능을 추가한 것

- 개발 언어로 Java 또는 Kotlin을 사용하며 이에 최적화된 통합 개발 도구인 Android Studio를 사용해 고효율의 생상성을 보임

- 높은 수준의 애플리케이션을 제작하기 위한 NDK (Native Development Kit)도 제공하여 c, c++ 기반으로 개발이 가능함 (시스템 응용 프로그램 개발 시 사용)

- 안드로이드 SDK는 많은 라이브러리를 포함하고 있어 개발을 용이하게 할 수 있으며, 특히 SQLite 등을 지원하며 별도의 외부 라이브러리를 사용하지 않아도 됨

 

안드로이드 구조

 

1. Applications

- 안드로이드 스마트폰에서 사용가능한 일반적인 응용 프로그램

- 웹브라우저, 구글 맵, 연락처, 게임 등 사용자 입장에서 가장 많이 사용하는 앱

- Java 또는 Kotlin으로 작성됨

 

2. Application Framework

- 안드로이드 API가 존재하는 곳

- 애플리케이션은 API를 통해 안드로이드의 커널에 접근가능

 

3. Android Runtime

- JVM을 사용하지 않고 Java 코어 라이브러리와 Dalvik VM 또는 ART Runtime으로 구성됨

 

4. Libraries

- 안드로이드에 사용되는 여러 시스템 라이브러리는 시스템 접근 때문에 C로 작성되어 있어 성능이 뛰어나고 세밀한 조작이 가능함

 

5. Linux Kernel

- 메모리 관리, 디바이스 드라이버, 보안 등 HW 운영과 관련된 low level의 관리 기능이 들어있음

- 안드로이드 커널로 리눅스를 채택한 이유는 오픈소스라는 장점과 함께 카메라, 터치스크린 등 많은 스마트폰 장치를 지원하기 때문

 

안드로이드 개발 환경

안드로이드 개발 환경의 구성

1. 안드로이드 개발에 기본이 되는 Java 또는 Kotlin을 사용하기 위해 JDK (Java Development Kit)가 필요하다.

Android Studio 2.2 부터는 Open JDK가 내장되어 있어 별도 설치가 필요하지는 않다. Kotlin 언어를 사용할 때도 JDK가 설치되어 있어야 하며, 설치 후에는 둘 중 어떤 언어를 사용해도 된다. 

2. 안드로이드 SDK는 별도의 폴더에 존재해야 하는데, 모든 개발 API가 들어있지는 않기 때문에 필요한 버전의 API를 추가로 다운받는 과정도 필요하다. 

3. 실제 개발자가 코딩하기 위한 IDE가 핵심에 존재한다.

4. Android Studio와 안드로이드 SDK를 연결하기 위한 플러그인 ADT(Android Development Tools)가 내부적으로 필요하다.

5. 이 때 안드로이드 SDK가 설정된 경로가 지정되어 있어야 한다.

6. 결과를 화면에 테스트로 출력하기 위한 가상 안드로이드 장치인 AVD를 별도로 만들어야 한다 

반응형

'Study > Andriod with kotlin' 카테고리의 다른 글

앱 아키텍처  (0) 2023.05.22
Layout  (0) 2023.05.13
Comments