Zastanawiam się, dlaczego aplikacje na Androida nie będą mogły działać natywnie na Ubuntu Touch . Mam na myśli, czy to nie tylko Linux?
Zastanawiam się, dlaczego aplikacje na Androida nie będą mogły działać natywnie na Ubuntu Touch . Mam na myśli, czy to nie tylko Linux?
Odpowiedzi:
Krótka odpowiedź brzmi „nie”.
Ściśle mówiąc, jądro Linuksa zapewnia niewiele więcej niż bezpośredni interfejs do sprzętu, na którym działa. Istnieje cały stos dodatkowych interfejsów API, programów, aplikacji itp. Specyficznych dla telefonów z Androidem, od których zależą aplikacje na Androida. Ponadto system Android nie działa na standardowym jądrze Linuksa, ale działa na takim, który został wysoce spersonalizowany przez Google w celu uruchomienia jego systemu operacyjnego.
Nawet jeśli technicznie możliwe jest odtworzenie całego stosu wymaganego do uruchomienia aplikacji Android na innym systemie, byłby rozdęty i bardzo nieefektywny.
Nokia n900 maemo ma czarownicę, która jest systemem Linux, a jednak może uruchamiać aplikację na Androida za pośrednictwem środowiska Dalvik, które zostało dla niej opracowane, ale nigdy nie zostało wprowadzone na rynek ani repozytoria. Czemu? Tylko społeczeństwo, które opracowało dalvik dla n900, wie. Teraz była kolejna inicjatywa o nazwie apkenv. Wydaje się, że nie było tak wiele do dodania, aby N900 działał na niektórych grach na Androida i bez względu na moc procesora, procesora lub pulpitu maemo, aplikacje działają tam jak jezioro w dowolnej emulacji, ale niektóre działają idealnie, a niektóre nie. Tak więc w przypadku Ubuntu Touch nie chodzi o technikę (może się mylę, ale jeden oficjalny telefon dotykowy Ubuntu to Xiaomi, który jest również używany na Androidzie, więc sprzęt nie jest problemem w tym przypadku), ale chce i przyzna, że Google wygrał '
Odpowiedź na twoje pytanie jest DUŻA NIE.
Android różni się całkowicie od Ubuntu Touch, chociaż Android jest oparty na jądrze Linuksa, ale to nie znaczy, że natywne aplikacje Androida mogą działać na Linuksie i odwrotnie.
Podobieństwo jądra między różnymi systemami operacyjnymi nie powoduje, że ich aplikacje mogą być wykonywane w tych systemach operacyjnych. Jądro jest najniższą warstwą oprogramowania w systemie. Nad jądrem znajduje się przestrzeń użytkownika, która składa się z oprogramowania systemowego i interfejsu aplikacji .
System operacyjny z tym samym jądrem może mieć całkowicie różne przestrzenie użytkownika, a aplikacje rodzime działają w określonej przestrzeni użytkownika.
Co więcej, aplikacje na Androida są opracowywane zwykle przy użyciu java, a aplikacje na Androida uruchamiane są w środowisku wykonawczym ( Dalvik lub ART ), które pobiera kod bajtowy z JVM jako dane wejściowe, podczas gdy aplikacje linuxowe są po kompilacji przekształcane bezpośrednio w kod maszynowy .
Aplikacje opracowane dla Androida za pomocą C ++ nie mogą być uruchamiane bezpośrednio w środowisku linux, ale najpierw muszą zostać skompilowane dla systemów Linux.