Czy można uruchamiać aplikacje Android na (normalnym) systemie Linux?

17

Ponieważ Android to rozwidlone jądro Linuksa i stos oprogramowania, zastanawiam się, czy są jakieś projekty lub pomysły dotyczące stworzenia wersji Androida, którą można dodać do systemu Linux, aby umożliwić systemowi Linux uruchamianie aplikacji na Androida (skompilowanych dla, powiedzmy, x86 ).

Czy coś takiego istnieje, czy byłoby to możliwe?

(Nie chodzi mi o emulator dostarczany z SDK).

Andrew J. Brehm
źródło
2
Android Player dla BlackBerry Playbook jest blisko, choć oczywiście działa na QNX, a nie na Linuksie.
Mateusz przeczytał

Odpowiedzi:

2

Od czasu opublikowania tej informacji sytuacja zmieniła się nieco.

Istnieje teraz kilka (choć żaden z nich jeszcze nie jest idealny) sposobów uruchamiania aplikacji na Androida w systemie Linux bez emulatora lub maszyny wirtualnej.

  1. Shashlik oferuje całkiem niezłą integrację ze środowiskiem graficznym GNU. Brakuje jednak usług Google Play.
  2. ARChon wykorzystuje Google Chrome i pozwala instalować aplikacje na Androida tak, jakby były aplikacjami na Chrome. Jest dość schludny, ale tutaj również kompatybilność nie jest doskonała .
  3. Wreszcie Google oficjalnie wprowadzaSklep Play do Chrome OS. Ponieważ jest to oficjalny projekt opracowany przez Google, uważam, że powinien mieć najlepszą kompatybilność. Chrome OS to dystrybucja Linuksa oparta na Gentoo. Większość kodu źródłowego jest udostępniana w ramach projektu Chromium OS. Ponieważ ten kod źródłowy jest dostępny, przeniesienie tej kompatybilności do popularnych dystrybucji GNU / Linux nie powinno być zbyt trudne. Google jest stosunkowo przyjazny dla oprogramowania typu open source (przynajmniej w porównaniu z Apple / Microsoft) i nie sądzę, aby rzucali jakiekolwiek przeszkody na drodze do takiego przenoszenia. Jeśli już, wydaje się, że chcą, aby Sklep Play trafił na jak najwięcej urządzeń. Mogą nawet wbudować tę funkcję w przyszłe wersje Google Chrome na Linuxa lub wydać oddzielny pakiet. Wydają większość kodu źródłowego dla Androida i Chrome OS,

Nawiasem mówiąc, nie ma potrzeby osobnego kompilowania APK dla x86. Aplikacje, które piszesz, są kompilowane do kodu Dalvik Executable (DEX), który jest ostatecznie przekształcany w kod asemblera (zgodnie z wymaganą architekturą) przez jądro w celu wysłania do procesora. (Ta ostatnia część pochodzi z tej odpowiedzi ).

Revetahw mówi: Przywróć Monikę
źródło
12

Nic takiego jeszcze nie istnieje, ponieważ aplikacje nie są uruchamiane natywnie w systemie operacyjnym, ale zamiast tego używają wirtualnej maszyny Dalvik ( Wikipedia ). Jest nieco podobny do Java w tym sensie, że używa kodu bajtowego i tworzy oddzielne środowisko dla każdej aplikacji. Jeśli więc środowisko Dalvik nie jest przeniesione na inne platformy, nie można ich uruchomić na zwykłym sprzęcie.

Istnieje projekt o nazwie Alien Dalvik autorstwa Myriad, który próbuje uruchamiać aplikacje na Androida w różnych środowiskach, ale nie ma na nim zbyt wielu informacji. Myriad Alien Dalvik

onik
źródło
1

Wszystko się zmieniło od czasu opublikowania Revetahw.

Szaszłyk wydaje się być nieaktywnym projektem, ale Anbox wydaje się zyskiwać na popularności. Zaletą Anbox jest to, że nie emuluje jądra Androida, ale używa funkcji jądra Linuksa do współdzielenia jądra między systemem Linux a systemem Android.

Ponadto system operacyjny Chrome ma teraz stabilną obsługę aplikacji na Androida na kilku urządzeniach, ale niestety integracja ta jest zamknięta i nie planuje udostępnienia otwartego oprogramowania.

Tin Man
źródło
0

Nie wiem, czy są takie projekty. Najbliżej prawdopodobnie są projekty Android-x86, które są portem środowiska Androida na komputerowych stacjach roboczych: http://www.android-x86.org/

Juri
źródło
1
Nie emuluje środowiska Android na komputerowych stacjach roboczych, jest to port Androida na normalne komputery.
Andrew J. Brehm,
Jasne, mój preparat nie był zbyt odpowiedni. Naprawiono, thx.
Juri