일반 Linux에서 Android 앱을 실행할 수 없는 이유는 무엇입니까? [폐쇄]

일반 Linux에서 Android 앱을 실행할 수 없는 이유는 무엇입니까? [폐쇄]

나는 Archon과 같은 프로젝트에 대해 알고 있으며 다양한 에뮬레이터가 존재한다는 것을 알고 있지만 이상한 점은 일반 Linux 커널에서는 Windows 프로그램을 실행할 수 있지만 Android 프로그램은 실행할 수 없다는 것입니다.

답변1

Android에는 고유한 커널 기능이 많이 있습니다. 목록을 보실 수 있습니다여기. 가장 큰 것 같습니다접합재. Linux에서 Android "distro"를 실행하려면 먼저 커널에서 이러한 기능 중 일부를 구현해야 합니다.

Linux 데스크탑과 통합하는 것은 실제로 더 어렵습니다.

그래픽 하위 시스템은 X11과 호환되지 않으므로 Android 애플리케이션은 표준 Linux 데스크톱에 그릴 수 없습니다.

답변2

엄밀히 말하면 Linux 커널은 실행되는 하드웨어에 대한 직접적인 인터페이스만 제공합니다. Android 애플리케이션은 추가적인 Android 휴대폰별 API, 프로그램, 애플리케이션 등의 전체 세트에 의존합니다. 또한 Android는 범용 Linux 커널에서 실행되지 않고 운영 체제를 실행하도록 특별히 설계된 Google의 고도로 맞춤화된 커널에서 실행됩니다.

Android 앱이 다른 시스템에서 실행되는 데 필요한 전체 스택을 재현하는 것이 기술적으로 가능하더라도 이는 비대해지고 극도로 비효율적이 됩니다. 화면 크기가 제한되어 있고, 휴대폰에는 "윈도우 시스템"이라는 개념이 존재하지 않으며, SIM 카드, GPS 등 일부 하드웨어가 전혀 존재하지 않습니다.

필요한 추가 비트를 제공하여 애플리케이션을 속일 수 있는 에뮬레이터가 있습니다. 하지만 컴퓨터에서 기본 OpenJDK를 사용하므로 제대로 작동합니다. 에뮬레이터가 아닌 테스트 환경으로 생각하십시오.

관련 정보