안드로이드 시스템이란 무엇이며, 안드로이드의 발전은 무엇이며, 안드로이드의 플랫폼 아키텍처와 기능은 무엇인지
Android 플랫폼은 기본 Linux 운영 체제, 미들웨어의 중간 계층 및 Java 애플리케이션의 상위 계층을 포함하는 통합된 전략 아이디어를 채택합니다. 아래에서는 Android의 기능과 아키텍처를 요약하겠습니다.
1. Android 플랫폼 기능
Android 플랫폼에는 다음과 같은 기능이 있습니다.
1. 애플리케이션 프레임워크는 구성 요소의 재사용 및 교체를 지원합니다.
이런 식으로 시스템에서 마음에 들지 않는 애플리케이션을 삭제하고 원하는 애플리케이션을 설치할 수 있습니다.
2. Dalvik 가상 머신은 모바일 장치에 특별히 최적화되어 있습니다.
안드로이드 애플리케이션은 DX 툴을 통해 자바로 작성되고 컴파일된 클래스 파일을 접미사가 .dex인 파일로 변환하여 실행한다. Dalvik 가상 머신은 레지스터 기반이며 Java 가상 머신보다 훨씬 빠릅니다.
3. 내부 통합 브라우저는 오픈소스 WebKit 엔진을 기반으로 합니다.
브라우저가 내장되면 WAP 애플리케이션 시대가 끝나고, 진정한 모바일 인터넷 시대가 도래했다는 의미다. 휴대폰은 로밍이 가능한 '작은 컴퓨터'다. 마음대로 인터넷을 돌아다닌다.
4. 최적화된 그래픽 라이브러리에는 2D 및 3D 그래픽 라이브러리가 포함되어 있으며, 3D 그래픽 라이브러리는 OpenGL ES 1.0을 기반으로 합니다.
강력한 그래픽 라이브러리는 게임 개발에 좋은 소식을 가져옵니다. 3G에서 가장 중요한 애플리케이션은 모바일 인터넷과 모바일 게임이다.
5. SQLite는 구조화된 데이터 저장소로 사용됩니다.
6. 멀티미디어 지원에는 MPEG4, H.264, MP3, AAC, AMR, JGP, PNG, GIF와 같은 일반적인 오디오, 비디오 및 정적 이미지 파일 형식이 포함됩니다.
7. GSM 전화(하드웨어에 따라 다름).
8. Bluetooth, EDGE, 3G, WiFi(하드웨어에 따라 다름)
9. 카메라, GPS, 나침반 및 가속도계(하드웨어에 따라 다름)
10. 풍부한 개발 환경에는 장치 시뮬레이터, 디버깅 도구, 메모리 및 성능 분석 차트, Eclipse 통합 개발 환경 플러그인이 포함됩니다.
Google은 수많은 클래스 라이브러리와 개발 도구가 포함된 Android 개발 키트 SDK와 Eclipse용 시각적 개발 플러그인 ADT를 제공합니다.
2. Android 플랫폼 아키텍처
위 그림에서 Android 운영 체제의 아키텍처는 위에서 아래로, 애플리케이션, 애플리케이션 프레임워크의 4개 계층으로 나눌 수 있음을 알 수 있습니다. , 핵심 클래스 라이브러리 및 Linux 커널, 세 번째 계층에는 Android 런타임 환경도 포함됩니다. 각 부분은 아래에 설명되어 있습니다.
1. 프로그램 애플리케이션
Android
이메일 클라이언트와 SMS 단문 메시지 프로그램, 캘린더, 지도, 브라우저, 연락처 관리 프로그램 등 모든 애플리케이션은 Java로 작성됩니다.
2. 애플리케이션 프레임워크
개발자는 핵심 애플리케이션에서 사용되는 API 프레임워크에 대한 전체 액세스 권한을 갖습니다. 애플리케이션 프레임워크 아키텍처는 구성 요소 소프트웨어의 재사용을 단순화하도록 설계되었습니다. 모든 애플리케이션은 해당 기능 블록을 게시할 수 있고 다른 애플리케이션은 게시된 기능 블록을 사용할 수 있습니다(그러나 프레임워크의 보안 제한 사항을 준수해야 함). 이 애플리케이션 재사용 메커니즘을 통해 사용자는 구성 요소를 교체할 수 있습니다.
다음 애플리케이션은 모두 다음을 포함한 일련의 서비스 및 시스템으로 구성됩니다.
1) 확장 가능한 보기(Views)를 사용하여 목록(목록)을 포함한 애플리케이션을 만들 수 있습니다. , 네트워크(그리드), 텍스트 상자(텍스트
상자), 버튼(버튼), 심지어 내장 가능한 웹 브라우저까지 포함합니다.
2) 콘텐츠 관리자(콘텐츠 제공자)를 사용하면 애플리케이션이 다른 애플리케이션의 데이터(예: 연락처 데이터베이스)에 액세스하거나 자체 데이터를 공유할 수 있습니다.
3) 리소스 관리자는 로컬 문자열, 그래픽, 레이아웃 파일과 같은 비코드 리소스에 대한 액세스를 제공합니다.
4) 알림 관리자(Notification Manager)를 사용하면 애플리케이션이 상태 표시줄에 고객 알림 정보를 표시할 수 있습니다.
5) 활동 관리자(Activity Manager)는 애플리케이션 수명 주기를 관리하고 일반적인 탐색 롤백 기능을 제공하는 데 사용됩니다.
3. Android 라이브러리
Android에는 Android 시스템의 다양한 구성 요소에서 사용되는 C/C++ 라이브러리가 포함되어 있습니다. 이 라이브러리는 Android 애플리케이션 프레임워크를 통해 개발자에게 서비스를 제공합니다.
다음은 몇 가지 주요 핵심 라이브러리입니다.
1) 시스템 C 라이브러리: BSD에서 상속된 표준 C 시스템 함수 라이브러리(libc), 특히 맞춤형 임베디드 Linux 기반 장치용 .
2) 미디어 라이브러리: PacketVideo 기반
OpenCORE 이 라이브러리는 녹음 및 재생을 지원하며 MPEG4를 포함한 정적 이미지 파일은 물론 다양한 인기 오디오 및 비디오 형식을 녹음할 수 있습니다. H.264, MP3, AAC, JPG, PNG.
3) Surface Manager: 디스플레이 하위 시스템을 관리하고 여러 애플리케이션에 대한 2D 및 3D 레이어의 원활한 통합을 제공합니다.
4) LibWebCore: Android 브라우저와 내장형 웹 보기를 지원하는 최신 웹 브라우저 엔진입니다.
5) SGL: 내장형 2D 그래픽 엔진입니다.
6) 3D 라이브러리: OpenGL ES 1.0 API를 기반으로 구현되었습니다. 이 라이브러리는 하드웨어 3D 가속(사용 가능한 경우)을 사용하거나 고도로 최적화된 3D 소프트 가속을 사용할 수 있습니다.
7) FreeType: 비트맵 및 벡터 글꼴 표시.
8) SQLite: 모든 애플리케이션에서 사용할 수 있는 강력한 기능을 갖춘 경량 관계형 데이터베이스 엔진입니다.
4. Android 런타임 라이브러리
Android에는 Java 프로그래밍 언어 핵심 라이브러리의 기능을 대부분 제공하는 핵심 라이브러리가 포함되어 있습니다.
각 Android 애플리케이션은 자체 프로세스에서 실행되며 독립적인 Dalvik 가상 머신 인스턴스를 갖습니다. Dalvik은 여러 VM을 동시에 효율적으로 실행하기 위해 구현되었습니다. Dalvik 가상 머신은 메모리 사용량을 최소화하도록 최적화된 .dex Dalvik 실행 파일을 실행합니다. 가상 머신은 레지스터를 기반으로 하며, 모든 클래스는 Java 어셈블러로 컴파일된 후 SDK의 DX 도구를 통해 .dex 형식으로 변환되어 가상 머신에서 실행됩니다.
Dalvik 가상 머신은 스레드 메커니즘 및 기본 메모리 관리 메커니즘과 같은 Linux의 일부 기능에 의존합니다.
5. Linux 커널
보안, 메모리 관리, 프로세스 관리, 네트워크 프로토콜 스택 및 드라이버 모델과 같은 Android의 핵심 시스템 서비스는 Linux 커널에 의존합니다. Linux 커널은 하드웨어와 소프트웨어 스택 사이에서 하드웨어 추상화 계층 역할도 합니다.