Androidime .jar dosyalarını nasıl yükleyebilirim?


9

Bazı 3D oyunları indirdim, sıkıştırmasını açtım ve .jar dosyaları aldım. Bunları Android'de nasıl kullanabilirim? Bir Galaxy S 2.1 çalıştırıyorum.

Yanıtlar:


13

Android java kullanmasına rağmen, normal JAR dosyalarını desteklemez. Bunun yerine APK adlı Android'e özel bir biçim kullanır. Temel fark, Android'in normal Java Sanal Makinesi'ni kullanmaması, ancak Android için optimize edilmiş kendi Dalvik Sanal Makinesi'ni içermesidir.


android 2.1 jar dosyasını yükleyemezsiniz demek istiyorsun.
Jeevan Bhatt

5
@Jeevan Bhatt: Kesinlikle. Bu gelecekte değişebilir (eğer birisi Android için JVM yazarsa) ama nefesimi tutamazdım.
onik

Ben internette arama yaptım ve android destek sadece apk dosyası olduğunu biliyorum geldi, bu yüzden bazı dönüştürücü tarafından .jar içine .apk dönüştürmek gerekir, doğru mu?
Jeevan Bhatt

4
Evet, bazı dönüştürücüler var ama bunlar çok güvenilir değil. Sorun şu ki, Android tüm java kütüphanesinin bir bölümünü kullanıyor ve özelliklerin çoğunu kontrol etmek için kendi kütüphanelerini ekliyor. Örneğin, Grafik Kullanıcı Arabirimi sınıfları Android'de (ör. Swing) kullanılamaz. Ayrıca dönüştürücünün dokunmatik ekran / klavye işlevselliği gibi tüm kullanıcı arabirimi olaylarını yeniden yazması gerekir. Görünüşe göre bazı dönüştürücüler eski telefonlarda kullanılan MIDP uygulamaları (J2ME) için bunu yapabilir, ancak normal Java uygulamaları (muhtemelen) çalışmaz. Dönüştürücüleri deneyebilirsiniz, ancak büyük olasılıkla sonuç gecikecek, buggy veya çökecektir.
onik

9

Ryan Conrad ve Onik'e kısmen katılmıyorum.

Bir Samsung Spica'm var ve v1.6 ve şimdi 2.1 (her ikisi de resmi Samsung Hindistan sürümleri) çalıştıran bir uygulama ile önceden yüklenmiş olarak geldi - Java ME Apps.

İçinde birden fazla Java uygulaması (Android olmayan telefonlar için) çalıştırıyorum.

Her ikisi de JAR dosyalarıdır ve bir kez Java ME uygulaması aracılığıyla çalıştırılır, her ikisi de beklendiği gibi çalışır.

Özetlemek gerekirse, Android'de JAR uygulamalarını çalıştırmanın bir yolu var. Ancak, WRT APK'ları ve Dalvik'ten bahsettiğim her şeye katılıyorum.


Bağladığınız Formula 1 Uygulaması, bir java / j2me uygulaması değil, yerel bir android uygulaması gibi görünüyor.
Irfan

1
Şimdi ... ilk olarak gönderdiğimde, bir Android sürümü yoktu - sadece J2ME sürümü. ;-)
Sparx

bunu nasıl yaptın?
meraklı

4

Android aslında java'yı "kullanmıyor". Kodun yazıldığı dil Java'dır, ancak android SDK derlenmiş bayt kodunu alır ve Dalvik bayt koduna dönüştürür.

Bu yüzden Android'in java çalıştırdığı bir yanlış anlama. Android, çekirdek kütüphanelerin Java çerçevesine dayandığı Dalvik'i çalıştırıyor, ancak sonuçta ortaya çıkan ikili dosyalar aynı değil ve sanal makineler de tamamen farklı.

Tıpkı Dalvik VM'nin Java bayt kodunu çalıştırmaması gibi, Java VM de Dalvik bayt kodunu çalıştırmaz.

Tüm özellikler Android'de (veya ek kütüphanelerde) mevcutsa, ancak Java UI'sı olan herhangi bir şey çalışmazsa, kitaplıkları Dalvik'e dönüştürmek muhtemelen mümkündür.


Aslında katılmıyorum. Google orada Java adlı kendi Dili yazmadı, sadece basitçe inanıyorum OpenJDK aldı ve pazarlama için Dalvik vb vb adı.
YumYumYum

1
Hiç dalvik bayt kodunu java bayt koduyla karşılaştırdınız mı, farklı.
Ryan Conrad

1
@Google: Bu, kelimenin tam anlamıyla tamamen yanlış. Google, Java sözdizimini (ve bazı kütüphaneleri) kullandı, ancak Ryan Conrad'ın belirttiği gibi bayt kodu tamamen farklı. Java JDK'yı yalnızca pazarlama amacıyla "yeniden adlandırmadılar". Daha fazla bilgi için Dalvik'in Wikipedia girişine bakın .
eldarerathis

3

Jar dosyası JavaME içinse

Orada MicroEmulator JavaSE yardımıyla JAVAME benzetilmiştir. Bu, bu jar dosyalarını bir apk'ye dönüştürmeyi ve cihazınıza yüklemeyi mümkün kılar. İşlem burada açıklanmaktadır.

NetRunner benzer bir işlevsellik sağlar.


Akış, bu MicroEmulator bağlantısı sanırım başka bir şeye değişmiş gibi görünüyor. Lütfen cevabı güncelleyebilir misiniz?
Firelord

-3

Hayır, jar dosyalarını android'e yükleyemezsiniz, jar uygulamalarını yüklemek için android telefonlarda olmayan J2ME desteğine ihtiyacımız var.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.