Android-아키텍처
Android 운영 체제는 아래 아키텍처 다이어그램에 표시된 것처럼 대략 5 개의 섹션과 4 개의 주요 레이어로 나뉘어 진 소프트웨어 구성 요소의 스택입니다.
Linux 커널
계층의 맨 아래에는 약 115 개의 패치가있는 Linux-Linux 3.6이 있습니다. 이것은 장치 하드웨어 간의 추상화 수준을 제공하며 카메라, 키패드, 디스플레이 등과 같은 모든 필수 하드웨어 드라이버를 포함합니다. 또한 커널은 네트워킹 및 방대한 장치 드라이버 배열과 같이 Linux가 실제로 잘하는 모든 것을 처리합니다. , 주변 하드웨어에 대한 인터페이스의 고통을 덜어줍니다.
도서관
Linux 커널 위에는 오픈 소스 웹 브라우저 엔진 WebKit, 잘 알려진 라이브러리 libc, 응용 프로그램 데이터의 저장 및 공유를위한 유용한 저장소 인 SQLite 데이터베이스, 오디오 및 비디오를 재생하고 녹음하는 라이브러리, SSL을 포함한 라이브러리 세트가 있습니다. 인터넷 보안 등을 담당하는 도서관
Android 라이브러리
이 범주에는 Android 개발에 특정한 Java 기반 라이브러리가 포함됩니다. 이 범주에 속하는 라이브러리의 예로는 사용자 인터페이스 구축, 그래픽 드로잉 및 데이터베이스 액세스를 용이하게하는 애플리케이션 프레임 워크 라이브러리 외에도 애플리케이션 프레임 워크 라이브러리가 있습니다. Android 개발자가 사용할 수있는 주요 핵심 Android 라이브러리에 대한 요약은 다음과 같습니다.
android.app − 애플리케이션 모델에 대한 액세스를 제공하며 모든 Android 애플리케이션의 초석입니다.
android.content − 애플리케이션과 애플리케이션 구성 요소 간의 콘텐츠 액세스, 게시 및 메시징을 용이하게합니다.
android.database − 콘텐츠 제공자가 게시 한 데이터에 액세스하는 데 사용되며 SQLite 데이터베이스 관리 클래스를 포함합니다.
android.opengl − OpenGL ES 3D 그래픽 렌더링 API에 대한 Java 인터페이스.
android.os − 메시지, 시스템 서비스 및 프로세스 간 통신을 포함한 표준 운영 체제 서비스에 대한 액세스 권한을 애플리케이션에 제공합니다.
android.text − 장치 디스플레이에서 텍스트를 렌더링하고 조작하는 데 사용됩니다.
android.view − 애플리케이션 사용자 인터페이스의 기본 구성 요소.
android.widget − 버튼, 라벨, 목록보기, 레이아웃 관리자, 라디오 버튼 등과 같은 사전 구축 된 사용자 인터페이스 구성 요소의 풍부한 컬렉션.
android.webkit − 웹 브라우징 기능을 애플리케이션에 내장 할 수 있도록 고안된 일련의 클래스.
Android 런타임에서 Java 기반 핵심 라이브러리를 다루었으므로 이제 Android 소프트웨어 스택의이 계층에 포함 된 C / C ++ 기반 라이브러리에 대해 살펴볼 차례입니다.
Android 런타임
이것은 아키텍처의 세 번째 섹션이며 맨 아래에서 두 번째 레이어에서 사용할 수 있습니다. 이 섹션에서는Dalvik Virtual Machine Android 용으로 특별히 설계되고 최적화 된 일종의 Java Virtual Machine입니다.
Dalvik VM은 Java 언어에 내장 된 메모리 관리 및 멀티 스레딩과 같은 Linux 핵심 기능을 사용합니다. Dalvik VM을 사용하면 모든 Android 애플리케이션이 Dalvik 가상 머신의 자체 인스턴스와 함께 자체 프로세스에서 실행될 수 있습니다.
Android 런타임은 또한 Android 애플리케이션 개발자가 표준 Java 프로그래밍 언어를 사용하여 Android 애플리케이션을 작성할 수 있도록하는 핵심 라이브러리 세트를 제공합니다.
애플리케이션 프레임 워크
응용 프로그램 프레임 워크 계층은 Java 클래스 형태로 응용 프로그램에 많은 상위 수준 서비스를 제공합니다. 응용 프로그램 개발자는 응용 프로그램에서 이러한 서비스를 사용할 수 있습니다.
Android 프레임 워크에는 다음과 같은 주요 서비스가 포함됩니다.
Activity Manager − 애플리케이션 라이프 사이클 및 활동 스택의 모든 측면을 제어합니다.
Content Providers − 애플리케이션이 다른 애플리케이션과 데이터를 게시하고 공유 할 수 있도록합니다.
Resource Manager − 문자열, 색상 설정 및 사용자 인터페이스 레이아웃과 같은 비 코드 임베디드 리소스에 대한 액세스를 제공합니다.
Notifications Manager − 애플리케이션이 사용자에게 경고 및 알림을 표시하도록 허용합니다.
View System − 애플리케이션 사용자 인터페이스를 생성하는 데 사용되는 확장 가능한 뷰 세트.
응용
모든 Android 애플리케이션은 최상위 레이어에서 찾을 수 있습니다. 이 레이어에만 설치할 애플리케이션을 작성합니다. 이러한 응용 프로그램의 예로는 연락처 북, 브라우저, 게임 등이 있습니다.