[안드로이드] 안드로이드 특징
안드로이드 특징
1. 운영체제
- 안드로이드는 리눅스에 기반을 둔 오픈소스 소프트웨어 스택이다.
- 하드웨어의 추상화 계층으로, 상위의 자바 API 프레임워크에서 하드웨어 기능을 이용할 수 있게 표준 인터페이스를 제공한다.
- DEX 파일을 해석해서 실행하는 주체가 ART(Anroid Runtime)로, ART에서 실행한다.
- 안드로이드 앱은 대부분 자바 프레임워크로 개발하지만 네이티브 C/C++ 라이브러리를 이용할 수 있는데 이를 안드로이드 NDK(Native Development Kit)라고 한다.
2. 안드로이드 앱 개발 특징
- 안드로이드 앱 개발의 핵심은 컴포넌트(Component)이다.
- 컴포넌트란 애플리케이션의 구성 요소라고 할 수 있다. ( 구성하는 단위 )
- 클래스로 컴포넌트를 개발한다. 즉, 하나의 클래스가 하나의 컴포넌트가 된다.
- 모든 클래스가 컴포넌트는 아니다. 앱의 여러 클래스 중 , 컴포넌트 클래스와 일반 클래스로 구분한다.
▷ 일반 클래스 : 클래스의 객체 생성부터 소멸까지 생명주기 관리를 개발자 코드에서 하는 것
▷ 컴포넌트 클래스 : 개발자가 만들기는 했지만 생명주기를 안드로이드 시스템에서 관리하는 것
- 안드로이드 컴포넌트는 액티비티, 서비스, 콘텐츠 프로바이더, 브로드캐스트 리시버로 구분한다.
▷ 액티비티(Activity) : 화면을 구성하는 컴포넌트
▷ 서비스(Service) : 백그라운드 작업을 하는 컴포넌트
▷ 콘텐츠 프로바이더(ContentProvider) : 앱의 데이터를 공유하는 컴포넌트
▷ 브로드캐스트 리시버(BroadcastReceiver) : 시스템 이벤트가 발생할 때 실행하게 되는 컴포넌트
- 컴포넌트는 애플리케이션 안에서 독립된 실행 단위이다 -> 서로 종속되지 않아서 코드 결합이 발생하지 않는다는 의미이다. => 그러므로 앱의 실행 시점이 다양하다.
- 애플리케이션 라이브러리를 사용할 수 있다.
- 리소스를 많이 활용한다.
- 리소스 : 코드에서 정적인 값을 분리한 것
참고
Do it! 깡쌤의 안드로이드 앱 프로그래밍 with 코틀린 : 18개 실습 예제로 배우는 모바일 앱 개발
참고
https://developer.android.com/guide/components/fundamentals?hl=ko