เป็นไปได้หรือไม่ที่จะรันแอปพลิเคชัน JavaFX บน iOS, Android หรือ Windows Phone 8


105

เราสามารถพัฒนาแอปพลิเคชันทั้งหมดโดยใช้ JavaFX และเรียกใช้บน iOS, Android หรือ Windows Phone 8 โดยไม่ต้องเขียนโค้ดเฉพาะแพลตฟอร์มได้หรือไม่?


1
ฉันไม่คิดอย่างนั้น ดูที่นี่: news.kynosarges.org/2013/10/10/javafx-on-ios-android
Viktor K.

1
Oracle พัฒนา ADF mobile ดูนี่สิ. รองรับ iOS และ android
Alexander Kirov

เพียงมองหาคำว่า javafxports บน www คุณสมบัติ javafx ส่วนใหญ่ทำงานได้ดีบน windows / android / iOS ในขณะนี้มีคุณลักษณะบางอย่างที่ยังไม่ทำงานบน Android เช่น Task.cancel () หรืออักขระ Unicode สากลหรือโปรแกรมเล่นสื่อ fx เป็นต้น
Amin

คำตอบ:


61

พื้นหลัง

คำตอบคงที่ของเป็นทรัพยากรที่ดีสำหรับวิธีการทุกอย่างก็เริ่มต้นและสิ่งที่เป็นของรัฐของ JavaFX บนฝังตัวและโทรศัพท์มือถือในช่วงต้นปี 2014 แต่จำนวนมากมีการเปลี่ยนแปลงตั้งแต่นั้นมาและผู้ใช้ที่สะดุดในหัวข้อนี้ไม่ได้รับการปรับปรุงข้อมูล

ประเด็นส่วนใหญ่ของฉันเกี่ยวข้องกับคำตอบของ Invariant ดังนั้นฉันขอแนะนำให้อ่านให้จบก่อน

สถานะปัจจุบันของ JavaFX บนมือถือ / ฝังตัว

ข่าวร้ายก่อน:

ตอนนี้ข่าวดี:

  • JavaFX ยังคงทำงานบน Android, iOS และอุปกรณ์ฝังตัวส่วนใหญ่
  • JavaFXPorts SDK สำหรับ Android, iOS และอุปกรณ์ฝังตัวสามารถดาวน์โหลดได้จากที่นี่
  • โปรเจ็กต์ JavaFXPorts ยังคงเฟื่องฟูและมันง่ายกว่าที่เคยในการรัน JavaFX บนอุปกรณ์มือถือทั้งหมดนี้ต้องขอบคุณปลั๊กอิน IDEที่สร้างขึ้นบน SDK เหล่านี้และช่วยให้คุณเริ่มต้นได้ในไม่กี่นาทีโดยไม่ต้องติดตั้ง SDK ใด ๆ ให้ยุ่งยาก
  • รองรับ JavaFX 3D บนอุปกรณ์มือถือแล้ว
  • GluonVMเพื่อแทนที่ RoboVM ทำให้รองรับJava 9สำหรับนักพัฒนามือถือ ใช่คุณได้ยินถูกต้อง
  • Oracle เปิดตัวMobile Projectเพื่อรองรับ JDK บนแพลตฟอร์มมือถือที่สำคัญทั้งหมด ควรสนับสนุน JavaFX ด้วย;)

วิธีการเริ่มต้น

หากคุณไม่ใช่ประเภท DIY ฉันขอแนะนำให้ติดตั้งปลั๊กอิน IDE บน IDE ที่คุณชื่นชอบและเริ่มต้นใช้งาน

ส่วนใหญ่เป็นเอกสารเกี่ยวกับวิธีการเริ่มต้นที่สามารถพบได้ที่นี่และบางส่วนของตัวอย่างที่สามารถพบได้ที่นี่


ฉันไม่แน่ใจว่าคุณใช้ JavaFX ครั้งล่าสุดเมื่อใด แต่การปรับปรุงจำนวนมากได้หายไปใน JavaFX 8 มีการเปลี่ยนแปลงมากมายจาก JavaFXPorts เริ่มต้นเป็น Gluon Mobile
ItachiUchiha

ขอบคุณสำหรับการอัปเดตนี้ คำถามด่วน JavaFXPorts สามารถใช้เพื่อการค้าได้ฟรีหรือไม่ (โดยใช้ไลบรารีไม่ได้แก้ไข) ฉันมีรหัสฐาน JavaFX ฉันหวังว่าจะรวมเข้ากับ Android ได้ Gluon Mobile ให้ทดลองใช้ฟรี แต่ฉันต้องการวิธีแก้ปัญหาแบบถาวร JavaFXPorts (ไม่ใช่ Gluon Mobile) เป็นโซลูชันหรือไม่ กรุณาชี้แจง
โนว่า

@ โนวาหวัดดี ใช่JavaFXPorts อยู่ภายใต้ข้อยกเว้น GPLv2 + CLASSPATHดังนั้นคุณสามารถใช้ในโปรเจ็กต์ของคุณได้โดยไม่ต้องกังวล แต่เนื่องจาก JavaFXPorts ให้การสนับสนุนขั้นต่ำเพียงเล็กน้อย (ไม่มีการรองรับ IDE + ไม่มีการควบคุมมือถือ) ฉันจึงไม่เชื่อที่จะเลือกใช้เพื่อการค้า Gluon Mobile ใช้งานได้ฟรีเพียงแค่มีหน้าจอ Nag เมื่อแอปพลิเคชันของคุณเริ่มต้น (สำหรับเวอร์ชันฟรี) แต่คุณสามารถกำจัดมันได้เมื่อแอปของคุณมีชื่อเสียงโดยจ่ายค่าธรรมเนียม :)
ItachiUchiha

@ItachiUchiha ที่น่าจับตามอง! คำถามสุดท้าย: การเปรียบเทียบผลิตภัณฑ์ Gluon Mobile ที่พบที่นี่แสดงให้เห็นว่าหน้าจองี่เง่าเป็นข้อแตกต่างเพียงอย่างเดียวระหว่างระดับฟรีและระดับอินดี้ ปลอดภัยหรือไม่ที่จะสมมติว่าฉันสามารถใช้เวอร์ชันฟรีเพื่อการพาณิชย์ได้โดยไม่ จำกัด เวลา ไม่มีวันหมดอายุ? ฉันสามารถจัดการกับหน้าจอจู้จี้ได้จนกว่าเงินจะเข้า :) ขอบคุณสำหรับการชี้แจง
Nova

1
ขออภัยอีกหนึ่งคำถาม: โค้ด JavaFX ของฉันสมบูรณ์ 90% โดยมีโค้ดมากกว่า 20,000 บรรทัด ฉันยังสามารถรวม Gluon Mobile เข้ากับ codebase ของฉันได้ ... หรือฉันต้องใช้ตั้งแต่เริ่มต้นก่อนที่จะเขียนบรรทัดเดียว Thx
Nova

75

ใช่คุณสามารถเรียกใช้แอปพลิเคชัน JavaFX บน iOS, Android, เดสก์ท็อป, RaspberryPI (ยังไม่มี windows8 mobile)

ทำงานในการดำเนินการ:

เราทำได้! โครงการมัลติมีเดีย JavaFX8 บน iPad, Android, Windows และ Mac!

JavaFX ทุกที่

Ensemble8 Javafx8 Android Demo

แอปพลิเคชัน JavaFX ตัวอย่างของฉันที่ทำงานบน Raspberry Pi

แอปพลิเคชันตัวอย่างของฉันทำงานบน Android

JavaFX บน iOS และ Android

ทรัพยากร Dev:

Android:

การสร้างและปรับใช้แอปพลิเคชัน JavaFX บน Android

iOS:

NetBeans รองรับ JavaFX สำหรับ iOS แล้ว!

พัฒนาแอป JavaFX + iOS ด้วย RoboVM + e (fx) clipse tools ใน 10 นาที

หากคุณกำลังจะพัฒนาแอพพลิเคชั่นอย่างจริงจังนี่คือข้อมูลเพิ่มเติม

อื่น ๆ :

ในปัจจุบันสำหรับรายการลำดับความสำคัญของ JavaFX Oracle คือเดสก์ท็อป (Mac, windows, linux) และ Embedded (Raspberry Pi, beagle Board และอื่น ๆ )สำหรับ oracle iOS / android ทำ javafxports ส่วนใหญ่ของแพลตฟอร์มเหล่านี้เป็นส่วนหนึ่งของ OpenJFX แต่ที่นั่น ไม่ใช่ JVM จาก oracle สำหรับ ios / android ชุมชนกำลังรวมทุกอย่างเข้าด้วยกันโดยการเติมชิ้นส่วนที่ขาดหายไป (JVM) สำหรับ ios / android ชุมชนมีความก้าวหน้าที่ดีในการเรียกใช้ JavaFX บน ios ( RoboVM) / android ( DalvikVM ) หากคุณต้องการคุณสามารถมีส่วนร่วมกับชุมชนโดยการสนับสนุน ( เป็นผู้สนับสนุน RoboVM ) หรือเริ่มพัฒนาแอปและรายงานปัญหา

แก้ไข 06/23/2014:

Johan Vos สร้างเว็บไซต์สำหรับพอร์ต javafx JavaFX บนมือถือและแท็บเล็ตตรวจสอบข้อมูลที่อัปเดตแล้ว ..


3
RoboVM มีโลโก้ที่ดีที่สุดเท่าที่เคยมีมา มันคือนกมันยกนิ้วให้ไม่ใช่เครื่องบิน!
Aleksandr Dubinsky

คุณสามารถเพิ่มลิงค์นั้น: youtube.com/watch?v=a3dAteWr40k&feature=youtu.be ;-)
assylias

@invariant การรวมและการเข้าถึงไมโครโฟน, มาตรความเร่ง, จีพีเอส, กล้องและอื่น ๆ สำหรับอุปกรณ์ต่างๆได้ดีเพียงใด?
mmm

ลิงค์แรกตายแล้ว เวอร์ชันที่เก็บถาวร: web.archive.org/web/20141008171951/http://…
Miscreant

4

เดสก์ท็อป: การสนับสนุนชั้นหนึ่ง

ออราเคิล JavaFX จากJava SEสนับสนุนเฉพาะOS X (MacOS), GNU / Linux และ Microsoft Windows บนแพลตฟอร์มเหล่านี้โดยทั่วไปแอปพลิเคชัน JavaFX จะทำงานบน JVM จาก Java SE หรือ OpenJDK

Android: ควรใช้งานได้

นอกจากนี้ยังมีJavaFXPortsโครงการซึ่งเป็นโครงการที่เปิดแหล่งที่มารับการสนับสนุนจากบุคคลที่สาม มีจุดมุ่งหมายเพื่อพอร์ตไลบรารี JavaFX ไปยัง Android และ iOS

บน Android สามารถใช้ไลบรารีนี้เหมือนกับไลบรารี Java อื่น ๆ bytecode JVM จะรวบรวมเพื่อ Dalvik bytecode มันคือสิ่งที่ผู้คนพูดว่า "Android รัน Java"

iOS: สถานะไม่ชัดเจน

ใน iOS สถานการณ์จะซับซ้อนกว่าเล็กน้อยเนื่องจาก Java SE และ OpenJDK ไม่รองรับอุปกรณ์พกพาของ Apple เมื่อเร็ว ๆ นี้ตัวเลือกเดียวที่เหมาะสมคือการใช้คอมไพเลอร์ Java ล่วงหน้าของRoboVMสำหรับ iOS แต่น่าเสียดายที่ 15 เมษายน 2015 โครงการ RoboVM ถูกปิดตัวลง

หนึ่งทางเลือกที่เป็นไปได้ของ Intel Multi-OS เครื่องยนต์ จนกระทั่งเมื่อเร็ว ๆ นี้มันเป็นเทคโนโลยีที่เป็นกรรมสิทธิ์ แต่ใน 11 สิงหาคม 2016 มันเป็นโอเพนซอร์ส แม้ว่าจะสามารถคอมไพล์แอป iOS JavaFX โดยใช้การใช้งาน JavaFX ของ JavaFXPorts ได้ แต่ก็ยังไม่มีหลักฐานสำหรับเรื่องนี้ อย่างที่คุณเห็นสถานการณ์มีการเปลี่ยนแปลงอย่างไม่หยุดนิ่งและหวังว่าคำตอบนี้จะได้รับการอัปเดตเมื่อมีข้อมูลใหม่

Windows Phone: ไม่รองรับ

ด้วย Windows Phone เป็นเรื่องง่าย: ไม่มีการสนับสนุน JavaFX ใด ๆ


2

เป็นไปได้ คุณสามารถรับกีฬาเชิงพาณิชย์ได้เช่นกัน

JavaFXPorts เป็นชื่อของโครงการโอเพ่นซอร์สที่ดูแลโดย Gluon ซึ่งพัฒนาโค้ดที่จำเป็นสำหรับ Java และ JavaFX เพื่อให้ทำงานได้ดีบนอุปกรณ์พกพาและฮาร์ดแวร์ในตัว เป้าหมายของโครงการนี้คือการสนับสนุนโครงการ OpenJFX ให้มากที่สุดเท่าที่จะเป็นไปได้และเมื่อเป็นไปไม่ได้เพื่อรักษาการเปลี่ยนแปลงจำนวนน้อยที่สุดที่จำเป็นเพื่อให้บรรลุเป้าหมายของ JavaFXPorts Gluon ใช้ซอร์สโค้ด JavaFXPorts และรวบรวมเป็นไบนารีพร้อมสำหรับการปรับใช้บน iOS, Android และฮาร์ดแวร์แบบฝัง การสร้าง JavaFXPorts มีให้บริการฟรีบนเว็บไซต์นี้สำหรับนักพัฒนาทุกคน

http://gluonhq.com/labs/javafxports/


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