Jak mogę zainstalować pliki .jar na moim Androidzie?

9

Pobrałem niektóre gry 3D, rozpakowałem je i otrzymałem pliki .jar. Jak mogę korzystać z nich w systemie Android? Mam Galaxy S z systemem 2.1.

Jeevan Bhatt
źródło

Odpowiedzi:

13

Chociaż Android używa Java, nie obsługuje normalnych plików JAR. Zamiast tego używa formatu specyficznego dla Androida o nazwie APK. Główna różnica polega na tym, że Android nie korzysta z normalnej wirtualnej maszyny Java, ale zawiera własną wirtualną maszynę Dalvik, zoptymalizowaną dla systemu Android.

onik
źródło
oznacza to, że nie mogę zainstalować pliku jar w Androidzie 2.1.
Jeevan Bhatt
5
@Jeevan Bhatt: Dokładnie. To może się zmienić w przyszłości (jeśli ktoś napisze JVM dla Androida), ale nie wstrzymałbym oddechu.
onik
Szukałem w Internecie i dowiedziałem się, że Android obsługuje tylko plik apk, więc muszę przekonwertować .jar na .apk przez jakiś konwerter, czy to prawda?
Jeevan Bhatt
4
Tak, jest kilka konwerterów, ale nie są one bardzo niezawodne. Problem polega na tym, że Android używa części całej biblioteki Java i dodaje własne biblioteki do kontrolowania większości funkcji. Na przykład klas graficznego interfejsu użytkownika nie można używać na Androidzie (np. Swing). Ponadto konwerter musi przepisać wszystkie zdarzenia interfejsu użytkownika, takie jak funkcje ekranu dotykowego / klawiatury. Najwyraźniej niektóre konwertery potrafią to zrobić dla apletów MIDP (J2ME) używanych na starszych telefonach, ale normalne aplikacje Java (prawdopodobnie) nie będą działać. Możesz wypróbować konwertery, ale najprawdopodobniej wynik będzie opóźniony, wadliwy lub ulegnie awarii.
onik
9

Chciałbym częściowo nie zgodzić się z Ryanem Conradem i Onikiem.

Mam Samsung Spica, który został fabrycznie załadowany z aplikacją, gdy działała w wersji 1.6, a teraz w wersji 2.1 (obie oficjalne wersje Samsung India) - zwanych aplikacjami Java ME.

Korzystam z niego przez wiele aplikacji Java (przeznaczonych dla telefonów z systemem innym niż Android).

Oba są plikami JAR i po uruchomieniu za pomocą aplikacji Java ME oba działają zgodnie z oczekiwaniami.

Podsumowując, istnieje sposób na uruchamianie aplikacji JAR na Androidzie. Zgadzam się jednak ze wszystkim, co wspomniano o pakietach WRT APK i Dalvik.

Sparx
źródło
Że Formuła 1 App jesteś połączony wydaje się być rodem android app, a nie Java / J2ME app ..
Irfan
1
Teraz jest ... kiedy pierwotnie go opublikowałem, nie było wersji Androida - tylko J2ME. ;-)
Sparx
jak to prowadziłeś?
dociekliwy
4

Android nawet nie „używa” javy. Językiem, w którym kod jest napisany, jest Java, ale zestaw SDK systemu Android pobiera skompilowany kod bajtowy i konwertuje go na kod bajtowy Dalvik.

Tak naprawdę błędne jest przekonanie, że Android obsługuje Javę. Android uruchamia Dalvik, którego podstawowe biblioteki oparte są na frameworku Java, ale końcowe pliki binarne nie są takie same, a maszyny wirtualne również są zupełnie inne.

Podobnie jak w maszynie wirtualnej Dalvik nie będzie uruchamiany kod bajtowy Java, maszyna wirtualna Java nie uruchomi kodu bajtowego Dalvik.

Konwersja bibliotek do Dalvik jest prawdopodobnie możliwa, jeśli wszystkie funkcje są dostępne w Androidzie (lub dodatkowych bibliotekach), ale wszystko, co ma interfejs Java, nie będzie działać.

Ryan Conrad
źródło
Właściwie się nie zgadzam. Google nie napisał tam własnego języka o nazwie Java, po prostu wierzę, że wziął OpenJDK i nazwał go Dalvik itp. W celach marketingowych.
YumYumYum
1
czy kiedykolwiek porównywałeś kod bajtowy dalvik do kodu bajtowego java, jest inny?
Ryan Conrad,
1
@Google: To dosłownie całkowicie błędne. Google użył składni Java (i niektórych bibliotek), ale jak zauważył Ryan Conrad, kod bajtowy jest zupełnie inny. Nie tylko „zmienili nazwę” Java JDK w celach marketingowych. Zobacz wpis Dalvik w Wikipedii, aby uzyskać więcej.
eldarerathis,
3

Jeśli plik jar dotyczy JavaME

Istnieje MicroEmulator, który emuluje JavaME z pomocą JavaSE. Dzięki temu można przekonwertować te pliki jar do apk i zainstalować je na urządzeniu. Proces jest opisany tutaj.

NetRunner zapewnia podobną funkcjonalność.

Pływ
źródło
Przepływ, ten link MicroEmulator chyba zmienił się na coś innego. Czy możesz zaktualizować odpowiedź?
Firelord
-3

Nie, nie możesz instalować plików jar w Androidzie, aby zainstalować aplikacje ze jar, potrzebujemy wsparcia J2ME, którego nie ma w telefonach z Androidem.

Riyaz Mohammed Ibrahim
źródło