Android 모바일 애플리케이션 개발에 일반적으로 사용되는 프레임워크는 무엇인가요?_Android 프레임워크란 무엇인가요?
안드로이드 애플리케이션 개발 프레임워크는 ApplicationFramework입니다. 시스템 아키텍처는 LinuxKernel, AndroidRuntime, 라이브러리, ApplicationFramework의 5개 부분으로 구성됩니다. 두 번째 부분에서는 이 5가지 부분을 자세히 소개합니다. 각 레이어를 아래에서 위로 분석해 보겠습니다.
Android 아키텍처
1. LinuxKernelAndroid
보안, 메모리 관리, 프로세스 관리, 네트워크 스택 등 Linux2.6 기반의 핵심 시스템 서비스를 제공합니다. 드라이버 모델 . Linux
커널은 하드웨어와 소프트웨어 간의 추상화 계층 역할도 하며 특정 하드웨어 세부 정보를 숨기고 상위 계층에 통합 서비스를 제공합니다.
컴퓨터 네트워크를 연구하고 OSI/RM을 알고 있다면 계층화의 장점은 하위 계층에서 제공하는 서비스를 사용하여 상위 계층에 통합 서비스를 제공함으로써 계층 간의 차이점을 보호한다는 점을 알게 될 것입니다. 이 레이어와 하위 레이어
이하 레이어의 변경 사항은 상위 레이어에 영향을 미치지 않습니다. 즉, 각 계층은 각자의 임무를 수행하며, 각 계층은 고정된 SAP(ServiceAessPoint)를 제공한다는 점은 높은 응집력과 낮은 결합도라고 할 수 있습니다.
단순히 애플리케이션 개발을 하고 있다면 LinuxKernel 계층을 깊이 이해할 필요는 없습니다.
2. AndroidRuntimeAndroid
Java 프로그래밍 언어의 핵심 클래스 라이브러리에서 사용할 수 있는 대부분의 기능을 제공하는 핵심 라이브러리 모음이 포함되어 있습니다. 각 Android 애플리케이션은 자체 프로세스에서 실행되는 Dalvik 가상 머신의 인스턴스입니다. Dalvik 가상 머신은 단일 장치에서 여러 가상 머신을 효율적으로 실행하도록 설계되었습니다. Dalvik 가상 머신 실행 파일 형식은 .dex입니다. dex 형식은 Dalvik을 위해 특별히 설계된 압축 형식으로
메모리와 프로세서 속도가 제한된 시스템에 적합합니다.
JVM을 포함한 대부분의 가상 머신은 스택 기반인 반면 Dalvik 가상 머신은 레지스터 기반입니다. 두 아키텍처 모두 장점과 단점이 있습니다. 일반적으로 스택 기반 시스템에는 더 많은 명령어가 필요한 반면, 레지스터 기반 시스템에는 더 많은 명령어가 필요합니다. dx는 Java.class를 .dex 형식으로 변환할 수 있는 도구 세트입니다. dex 파일에는 일반적으로 여러 개의 .class가 있습니다. dex를 최적화해야 하는 경우가 있기 때문에 파일 크기가 1~4배 증가하여 ODEX로 끝납니다.
Dalvik 가상 머신은 Linux 커널을 사용하여 스레드 및 저수준 메모리 관리와 같은 기본 기능을 제공합니다.
3. LibrariesAndroid
Android 시스템의 다양한 구성 요소에서 사용할 수 있는 C/C 라이브러리 컬렉션이 포함되어 있습니다. 이러한 기능은 Android 애플리케이션 프레임워크(application
framework)를 통해 개발자에게 노출됩니다. 핵심 라이브러리 중 일부는 아래에 나열되어 있습니다. 시스템 C 라이브러리 - 임베디드 Linux 장치에 맞게 조정된 표준 C 시스템 라이브러리(libc)의 BSD 파생물
미디어 라이브러리 - PacketVideo 기반 OpenCORE. 이러한 라이브러리는 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG를 포함한 스틸 이미지 파일뿐만 아니라 널리 사용되는 다양한 오디오 및 비디오 형식의 재생 및 녹화를 지원합니다. 애플리케이션
LibWebCore - Android 브라우저 및 내장된 웹 보기를 구동하는 새로운 웹 브라우저 엔진 SGL - 기본 2D 그래픽 엔진
3D 라이브러리 - OpenGLES1.0 API를 기반으로 구현.
라이브러리는 하드웨어 3D 가속을 사용하거나 고도로 최적화된 3D 소프트웨어 래스터 FreeType을 포함합니다.
-비트맵 및 벡터 글꼴 렌더링 SQLite--모든 애플리케이션에서 사용할 수 있는 강력하고 가벼운 관계형 데이터베이스 엔진
p>
4. 애플리케이션 프레임워크
Android는 개방형 개발 플랫폼을 제공함으로써 개발자가 매우 풍부하고 새로운 애플리케이션을 컴파일할 수 있도록 해줍니다. 개발자는 장치 하드웨어 활용, 위치 정보 액세스, 백그라운드 서비스 실행, 알람 설정, 상태 표시줄에 알림 추가 등을 자유롭게 수행할 수 있습니다. 개발자는 핵심 애플리케이션에서 사용되는 프레임워크 API에 대한 전체 액세스 권한을 갖습니다. 애플리케이션의 아키텍처는 구성 요소 재사용을 단순화하도록 설계되었습니다. 모든 애플리케이션은 해당 기능을 게시할 수 있으며 다른 애플리케이션은 해당 기능을 사용할 수 있습니다(프레임워크에서 적용하는 보안 제한 사항에 따라). 이 메커니즘을 통해 사용자는 구성 요소를 교체할 수 있습니다. 모든 애플리케이션은 실제로 다음을 포함하는 서비스 및 시스템 세트입니다. 보기 - 애플리케이션을 구축하는 데 사용할 수 있는 풍부하고 확장 가능한 보기 모음입니다. 목록, 그리드, 텍스트 상자, 버튼 및 내장된 웹 브라우저 콘텐츠 제공자(ContentProvider)를 포함하여 애플리케이션이 다른 애플리케이션(예: 연락처)의 데이터에 액세스하거나 자체 데이터 리소스 관리자(ResourceManager)를 공유할 수 있도록 합니다. 지역화된 문자열, 그래픽 및 레이아웃 파일과 같은 비코드 리소스 알림 관리자(관리자) - 모든 응용 프로그램이 상태 표시줄에 사용자 정의 경고를 표시할 수 있도록 합니다. 활동 관리자(ActivityManager) - 응용 프로그램 수명 주기를 관리하고 범용 탐색 롤백 기능을 제공합니다. p>
5. Android는 이메일 클라이언트, SMS 프로그램, 캘린더, 지도, 브라우저, 연락처 및 기타 설정을 포함한 핵심 애플리케이션 컬렉션을 구성합니다. 모든 애플리케이션은 Java 프로그래밍 언어로 작성됩니다. 더욱 풍부한 애플리케이션이 우리의 개발을 기다리고 있습니다! 위에서 우리는 Android의 아키텍처가 계층화되어 있고 매우 명확하며 업무 분업이 명확하다는 것을 알고 있습니다. Android 자체는 소프트웨어 스택(Softwaretack) 또는 "소프트웨어 스택 아키텍처"입니다. 스택은 주로 운영 체제, 미들웨어 및 애플리케이션의 세 가지 계층으로 나뉩니다. 위에서 우리는 또한 오픈 소스의 힘을 보았습니다. 친숙한 모든 오픈 소스 소프트웨어는 여기에 자신의 강점을 기여했습니다.