ฉันจะติดตั้งไฟล์. jar บน Android ได้อย่างไร


9

ฉันดาวน์โหลดเกม 3 มิติแล้วคลายซิปและรับไฟล์. jar ฉันจะใช้สิ่งเหล่านี้ใน Android ได้อย่างไร ฉันใช้ Galaxy S 2.1 อยู่

คำตอบ:


13

แม้ว่า Android จะใช้จาวา แต่ก็ไม่รองรับไฟล์ JAR ปกติ แต่จะใช้รูปแบบเฉพาะของ Android ที่เรียกว่า APK ข้อแตกต่างที่สำคัญคือ Android ไม่ได้ใช้ Java Virtual Machine ปกติ แต่มี Dalvik Virtual Machine เป็นของตัวเองซึ่งได้รับการปรับให้เหมาะสมสำหรับ Android


คุณหมายถึงว่าฉันไม่สามารถติดตั้งไฟล์ jar ใน android 2.1 ได้
— Jeevan Bhatt

5
@ Jeevan Bhatt: แน่นอน สิ่งนี้สามารถเปลี่ยนแปลงได้ในอนาคต (ถ้ามีคนเขียน JVM สำหรับ Android) แต่ฉันจะไม่กลั้นลมหายใจ
— onik

ฉันค้นหาบนอินเทอร์เน็ตและรู้ว่า Android รองรับไฟล์ apk เท่านั้นดังนั้นฉันต้องแปลง. jar เป็น. apk โดยตัวแปลงบางตัวจริงหรือไม่
— Jeevan Bhatt

4
ใช่มีตัวแปลงบางตัว แต่มันไม่น่าเชื่อถือ ปัญหาคือ Android ใช้ส่วนหนึ่งของไลบรารี java ทั้งหมดและเพิ่มห้องสมุดของตัวเองเพื่อควบคุมคุณสมบัติส่วนใหญ่ ตัวอย่างเช่นคลาส Graphical User Interface ไม่สามารถใช้บน Android (เช่น swing) ตัวแปลงต้องเขียนเหตุการณ์ UI ทั้งหมดเช่นฟังก์ชันหน้าจอสัมผัส / แป้นพิมพ์ เห็นได้ชัดว่าตัวแปลงบางตัวสามารถทำสิ่งนี้สำหรับ MIDP applets (J2ME) ที่ใช้กับโทรศัพท์รุ่นเก่า แต่แอป Java ปกติ (อาจ) ไม่ทำงาน คุณสามารถลองใช้เครื่องมือแปลงได้ แต่ผลลัพธ์ส่วนใหญ่จะล่าช้าเป็นรถหรือผิดพลาด
— onik

9

ฉันไม่เห็นด้วยกับ Ryan Conrad & Onik บางส่วน

ฉันมี Samsung Spica และติดตั้งแอปล่วงหน้าในขณะที่ใช้งาน v1.6 และตอนนี้ใช้งาน 2.1 (ทั้งในรุ่นอย่างเป็นทางการของ Samsung India) - เรียกว่า Java ME Apps

ฉันใช้งานแอพ Java หลายตัว (สำหรับโทรศัพท์ที่ไม่ใช่ Android)

ทั้งคู่เป็นไฟล์ JAR และเมื่อเรียกใช้ผ่านแอป Java ME ทั้งคู่จะทำงานตามที่คาดไว้

ดังนั้นโดยสรุปแล้วมีวิธีเรียกใช้แอพ JAR บน Android อย่างไรก็ตามฉันเห็นด้วยกับทุกสิ่งที่กล่าวถึง WRT APK และ Dalvik


แอป Formula 1 ที่คุณเชื่อมโยงดูเหมือนว่าจะเป็นแอพ Android และไม่ใช่แอปพลิเคชัน java / j2me ..
— Irfan

1
ตอนนี้มันเป็น ... เมื่อฉันโพสต์มันไม่มีรุ่น Android - เพียงแค่ J2ME ;-)
— Sparx

คุณทำงานได้อย่างไร
— อยากรู้อยากเห็น

4

Android ไม่ได้ใช้ "จาวา" ด้วยซ้ำ ภาษาที่ใช้ในการเขียนโค้ดคือ Java แต่ android SDK นั้นใช้โค้ดไบต์ที่รวบรวมและแปลงเป็น Dalvik bytecode

ดังนั้นจึงเป็นความเข้าใจผิดที่ Android ใช้จาวา Android รัน Dalvik ซึ่งไลบรารีแกนหลักนั้นใช้เฟรมเวิร์ก Java แต่ท้ายที่สุดไฟล์ไบนารีที่ได้นั้นไม่เหมือนกันและเครื่องเสมือนก็แตกต่างกันโดยสิ้นเชิง

เช่นเดียวกับ Dalvik VM จะไม่เรียกใช้ Java bytecode, Java VM จะไม่เรียกใช้ Dalvik bytecode

การแปลงไลบรารีเป็น Dalvik อาจเป็นไปได้ถ้าคุณสมบัติทั้งหมดนั้นมีอยู่ใน Android (หรือไลบรารีเพิ่มเติม) แต่สิ่งใดก็ตามที่มี Java UI จะไม่ทำงาน


ฉันไม่เห็นด้วยจริงๆ Google ไม่ได้เขียนภาษาที่เรียกว่าภาษาจาวาพวกเขาแค่เชื่อว่าใช้ OpenJDK และตั้งชื่อให้ Dalvik และอื่น ๆ เพื่อการตลาด
— YumYumYum

1
คุณเคยเปรียบเทียบโค้ด dalvik byte กับโค้ด java byte หรือไม่
— Ryan Conrad

1
@Google: นั่นคือผิดอย่างแท้จริง Google ใช้ไวยากรณ์ Java (และบางไลบรารี) แต่ตามที่ Ryan Conrad ตั้งข้อสังเกตว่า bytecode นั้นแตกต่างอย่างสิ้นเชิง พวกเขาไม่เพียง "เปลี่ยนชื่อ" Java JDK เพื่อวัตถุประสงค์ทางการตลาด ดูรายการ Wikipedia ของ Dalvikเพิ่มเติม
— eldarerathis

3

หากไฟล์ jar สำหรับ JavaME

มีMicroEmulatorซึ่งเลียนแบบ JavaME ด้วยความช่วยเหลือจาก JavaSE ทำให้สามารถแปลงไฟล์ jar เหล่านี้เป็น apk และติดตั้งบนอุปกรณ์ของคุณ กระบวนการอธิบายไว้ที่นี่

NetRunnerมีฟังก์ชันการทำงานที่คล้ายกัน


Flow ลิงก์ MicroEmulator นั้นดูเหมือนจะเปลี่ยนเป็นอย่างอื่นที่ฉันคิดเอาไว้ คุณช่วยอัพเดทคำตอบได้ไหม
— Firelord

-3

ไม่คุณไม่สามารถติดตั้งไฟล์ jar ใน Android เพื่อติดตั้งแอปพลิเคชันจาก jar เราต้องการการสนับสนุน J2ME ซึ่งไม่ได้อยู่ในโทรศัพท์ Android

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.