본문
170321(화) - Android 구조
Android Memory 구조
플랫폼 아키텍쳐
- Linux 기반
- ART(Android RunTime)은 Threading 및 하위수준 메모리 관리에서 Linux 커널을 사용
HAL (Hardware Abstraction Layer)
- Java API Framework에 하드웨어 기능을 노출하는 표준 인터페이스를 제공
- Framework API가 하드웨어에 엑세스하기위해 호출을 수행 -> Android 시스템 -> 하드웨어 구성요소에 대한 라이브러리 모듈 로드
ART (Android Runtime)
- Android 5.0 (API Level 21) 이상에서는 각 앱이 자체 프로세스 내에서 ART 인스턴스로 실행
- DEX 파일을 실행하여 저용량 메모리 기기에서 여러 가상머신을 실행하도로 작성
DEX : ㆍ Android용으로 특별히 설계된 바이트코드 형식
ㆍ 최소 메모리 공간에 맞게 최적화
- 주요기능
ㆍ AOT(Ahead-Of-Time) 및 JIT(Just-In-Time) 컴파일
ㆍ 최적화된 GC
ㆍ 전용 샘플링 프로파일러
ㆍ 상세 진단 예외 및 크래시 보고
ㆍ watchpoint 설정으로 특정 필드 모니터링 (향상된 디버깅 지원)
- Android 5.0(API Level 21) 이전버전에서는 Dalvik이 ART
ㆍART 제대로 실행 -> Dalvik 제대로 실행
ㆍ반대의 경우 보장 불가
- Java 프로그래밍 언어 기능을 제공하는 핵심 런타임 Library도 포함
Native C / C++ Library
- ART, HAL 등 많은 핵심 Android 시스템 구성요소 및 서비스는 Native로 작성
- Java 프레임워크를 통해서 Native 기능을 앱에 노출
- Android NDK를 사용하여 Native Platform Library에 액세스 가능
Java API Framwork
- Android OS의 전체 기능은 Java로 작성된 API를 통해서 액세스 가능
- 모듈화 및 서비스 재활용
ㆍ 확장가능한 View 시스템
ㆍ Resource Manager
ㆍ Notification Manager
ㆍ Activity Manager
ㆍ Content Provider
System App
- Android에는 기본 App이 내장되어 있음
- App에서 액세스 할 수 있는 주요 기능 제공
ex ) SMS 메시지 제공시 SMS앱 호출
'Mobile > Android API' 카테고리의 다른 글
170411(화) - System permission (0) | 2017.04.11 |
---|---|
170411(화) - Device Compatibility (0) | 2017.04.11 |
170328(화) - App 기본 항목 (0) | 2017.03.28 |
170328(화) - ART & Dalvik (0) | 2017.03.28 |
170328(화) - DEX (Dalvik Executable format) (0) | 2017.03.28 |
댓글