Android App 의 운영 환경 및 Android 시스템 구조 개관
Application Framework:
이 층 은 응용 개발 자 에 게 Activity Manager,Content Provider,Notification Manager,각종 창 Widget 자원 등 다양한 응용 프로 그래 밍 인 터 페 이 스 를 제공 합 니 다.모든 앱 은 이 층 위 에서 작 동한 다.
Dalvik 가상 컴퓨터:
Dalvik VM 은 JVM 의 스 택 구조 가 아 닌 레지스터 구 조 를 사용 하여 모 바 일 장치 에 더욱 적합 합 니 다.자바 소스 코드 는.class 바이트 파일 로 컴 파일 된 다음 구 글 이 제공 하 는 dx 도구 에서 Dalvik 가 식별 할 수 있 는.dex 파일 로 전환 합 니 다.
Linux kernel:
모든 앱 프로그램 은 하나의 독립 된 Dalvik VM 으로 실행 되 고 하나의 Dalvik VM 인 스 턴 스 는 Liux 커 널 프로 세 스 에 대응 합 니 다.
그 러 니까 앱 마다 완전히 격 리 돼 자원 이 독립 된 것 이다.모든 APP 를 더욱 안전 하 게 하지만 프로 세 스 간 통신 에 도 불리 합 니 다.
Android 공식 소개
Android 시스템 구조
Application framework
대부분의 개발 자 들 은 이 층 에 관심 이 많다.개발 자가 접 할 수 있 는 모든 API 인 터 페 이 스 를 알 아야 합 니 다.대부분의 인 터 페 이 스 는 하드웨어 추상 층(HAL 층)인터페이스 와 일일이 대응 하고 자신의 구동 을 어떻게 실현 하 는 지 알려 줄 것 입 니 다.
Binder IPC
Binder 프로 세 스 간 통신 메커니즘 은 응용 프로그램 프레임 워 크 층 이 프로 세 스 를 뛰 어 넘 고 시스템 급 서 비 스 를 호출 할 수 있 도록 도와 준다.근본적으로 말하자면,이것 은 고급 프레임 워 크 의 API 인터페이스 와 안 드 로 이 드 시스템 서비스 가 상호작용 하 는 것 을 돕는다.
시스템 서비스
대부분의 Application framework api 가 갖 춘 기능 은 특정한 시스템 서비스 와 통신 하여 바 텀 하드웨어 를 조작 해 야 한다.시스템 서 비 스 는 서로 다른 기능 에 따라 Window Manager,Search Service,or Notification Manager 등 여러 모듈 구성 요소 로 나 뉜 다.시스템 서 비 스 는 주로 시스템 과 미디어 두 가 지 를 포함한다.전자 에 대응 하 는 서 비 스 는 Window Manager 나 Notification Manager 를 포함 하고 후자 에 대응 하 는 서 비 스 는 모두 재생 이나 기록 미디어 와 관련 이 있다.
하드웨어 추상 화 계층 하드웨어 추상 화 계층(HAL)
하드웨어 추상 층 은 표준 인터페이스 로 서 안 드 로 이 드 시스템 이 이러한 구동 과 하드웨어 를 상관 하지 않 고 장치 구동 층 을 호출 할 수 있다.
Linux Kernel
대부분의 경우,당신 이 직접 장치 구동 을 개발 하 는 것 은 Liux 장치 구동 을 개발 할 때 와 같 습 니 다.Android 는 특정한 Liux 커 널 버 전 을 선 택 했 습 니 다.이 버 전 은 wakelocks(메모리 관리 시스템),Binder IPC 드라이브 와 다른 특징 을 포함 하고 있 습 니 다.이러한 특징 은 Android 와 같은 모 바 일 내장 플랫폼 에 매우 중요 합 니 다.Binder IPC 드라이브 등 필요 한 속성 만 지원 할 수 있다 면 자신의 요구 에 따라 적당 한 kernel 버 전 을 선택 할 수 있 습 니 다.하지만 최신 버 전의 안 드 로 이 드 커 널 을 사용 하 는 것 을 추천 합 니 다.
관련 지식 포인트:
응용 프로그램 프로 세 스 간 격 리 메커니즘:
안 드 로 이 드 시스템 은 4 층 구 조 를 포함한다.바 텀 에서 위로 리 눅 스 kernel 층,C/C+함수 라 이브 러 리 와 안 드 로 이 드 가 실 행 될 때 환경(Dalvik VM 등)층,안 드 로 이 드 Framwork 프레임 워 크 층,응용 프로그램 층 이다.그 중에서 안 드 로 이 드 가 실 행 될 때 환경 층 은 자바 의 JRE 층 과 유사 하 며 주로 자바 프로그램 을 실행 하 는 데 사용 되 지만 이곳 의 가상 컴퓨터 는 Dalvik 가상 컴퓨터 입 니 다.모든 안 드 로 이 드 응용 프로그램 은 단독 Davlik 프로 세 스 에서 실 행 됩 니 다.Dalvik 가상 기 는 여러 개의 가상 기 를 동시에 효율적으로 실행 하 는 데 최적화 되 었 고 이 층 에서 응용 프로그램의 프로 세 스 간 격 리 를 실현 합 니 다.
Dalvik 가상 컴퓨터 와 JVM 의 차이 점:
JVM 은.class 나 Jar 패키지 에서 바이트 코드 를 직접 불 러 와 서 실행 하고,Dalvik 는 DX 도 구 를 통 해.class 파일 을.dex 파일(Dalvik Executable)로 컴 파일 하여 실행 합 니 다.
JVM 은 스 택 구 조 를 사용 하고 Dalvik 는 레지스터 구 조 를 사용 하여 모 바 일 장치 에 더욱 적합 합 니 다.
왜 Android 는 JVM 이 아 닌 Dalvik 가상 컴퓨터 를 사용 해 야 합 니까?
대부분의 가상 머 신(JVM 포함)은 스 택 을 기반 으로 하 는 것 이 고 Dalvik 가상 머 신 은 레지스터 를 기반 으로 하 는 것 으로 성능 이 좋 지만 하드웨어 의 유 니 버 설 성 이 약간 떨어진다.
전용.dex 파일 을 실행 합 니 다.DX 도 구 는.class 파일 을 컴 파일 할 때 불필요 한 정 보 를 제거 하고 모든.class 파일 을 한 파일 에 통합 하여 성능 을 향상 시 켰 습 니 다.또한 DX 도 구 는.dex 파일 의 성능 을 최적화 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.