如何使用Java开发iPhone应用程序?

51

我想知道是否可以使用Java加XMLV来开发iPhone应用程序,XMLV声称可以将基于Java的Android应用程序交叉编译为本地iPhone应用程序。

XMLV是一种可行的使用Java开发iPhone应用程序的方式吗?

这里有一些用于在iPhone中构建应用程序的Java代码示例:

http://www.xmlvm.org/iphone/#


这个网站已经说明了一切。但请记住,你实际上并不是在编写Java代码,而是在编写XML!http://xmlvm.org/iphone/ - Matt Ball
有几个问题与这个非常相似:https://dev59.com/RkjSa4cB1Zd3GeqPI9zj,https://dev59.com/DnM_5IYBdhLWcg3w3nRs - Brad Larson
http://www.robovm.org/ - jeet.chanchawat
18个回答

36

1
好的列表,这些似乎可能是最好的。 - setherj
1
RoboVM已经关闭。https://robovm.com/robovm-winding-down/ - Maciej Łoziński
似乎Gluon产品也可以列在这里。由于有太多的开放式编辑,我无法编辑此答案。但我认为此答案现在是最有帮助的。 - Luke 10X

33

如果你已经完成了其他项目,为什么不抽时间学习Objective-C呢?网络上有大量的资料可以帮助你入门。老实说,这并不难,学习一些内存管理将是一次很好的学习体验。你之前有使用过C语言编程吗?

大多数交叉编译器在转换代码时效果并不理想,如果你用这种方式开发项目,则调试工作可能会变得更加困难。


我懂C++,C#和一些C语言...所以是的,我之前做过一些C语言的项目... - Brendan Lesniak
3
Java/C#/ActionScript/JavaScript开发者面临的主要困难是(1)指针的存在和语法以及(2)手动内存管理。由于您已经掌握了C++和C语言,所以应该能够比较容易地学会Objective-C。 - Chris Hanson
2
现在使用PhoneGap框架是可行的。 - Pratik
1
教程的链接已失效。 - Crouching Kitten
3
由于这并没有回答“如何在iOS中使用Java编码”的问题,所以得到了-1的评分。我很重视这个答案的内容,但它不适合作为StackOverflow的答案。这个答案讨论了采取不同方法的好处,而问题似乎明确表示不需要使用Mac或Objective C。 - Seb
显示剩余2条评论

26

我认为你的老师给你指错了方向。

这是一个经典的例子,试图把方形木板塞进圆孔。开发iPhone最好的方式是使用iPhone SDK和Objective C。开发安卓最好的方式是使用Java和Android SDK。开发WinMobile最好的方式是使用C# / VB和.Net Framework。

可以看到每种平台都有自己的“最佳”SDK。既然你只学习Java,我会赞同建议你尝试一下Java和Android。


嗯,我确实会C#、一些C++和其他语言,所以学习Objective-C对我来说可能不太难。我只是想了解如果我使用Java会有多难。我的老师今天才向我介绍这个…… - Brendan Lesniak
2
不要让自己过于分散,人们往往习惯于了解许多语言,但并不擅长其中任何一种。我建议先把Objective C放在一边,去尝试一下众多Java SDK的使用。 - deanvmc
尽可能学习多种编程语言。这将让你更加了解每种语言的优势和不足之处。就我个人而言,我了解大约10种语言,虽然我承认有些已经生疏了。 - Lloyd Sargent

10

有一个名为Codename one的新工具:基于JAVA的One SDK,可在WP8、Android、iOS上编码并具备所有广泛功能

功能:

  1. 具备超快速的Android模拟器的完整Android环境
  2. 具备易于将iPhone应用程序转换为大屏幕iPad应用程序的iPhone/iPad模拟器
  3. 支持任何平台应用程序的标准Java调试和分析
  4. 易于主题/样式设置 - 只需单击即可完成

更多信息请参见使用Java开发Android、iOS iPhone、WP8应用程序


6

请查看codenameone.com项目,这是一个跨平台移动框架,其中UI部分是LWUIT的分支。该项目利用xmlvm将Java字节码翻译成Objective C。


5
你还可以查看RoboVM,它将Java字节码转换为本机ARM或x86代码,可以直接在处理器上运行,无需任何VM或解释器。大多数Obj-C UI元素已经桥接到Java中,并遵循通常的Java设计模式。 编辑 Robo VM最近宣布将关闭服务 - 来源

RoboVM 最近已经达到了 1.0 版本。 - Christopher Fraser

2

如果你想开发iPhone的应用程序,至少需要了解Objective-C的基础知识。但是,也可以使用C++类。

据我所知,Adobe正在努力构建适用于iPhone的Flex/Flash应用程序。在这里阅读更多信息:http://theflashblog.com/?p=1513


这里还有更多关于技术的内容:http://www.adobe.com/devnet/logged_in/abansod_iphone.html - Jacek

2
你不能这样做。
不过请注意,Monotouch允许你使用C#而不是Objective-C进行开发。 http://monotouch.net/

1
值得注意的是,现在Monotouch是http://xamarin.com/ios?gclid=CKu1juOp77UCFUbMtAodUnIAYg - Andiih

2

提醒一下,这个问题是来自2010年的... - Brendan Lesniak
@BrendanLesniak:那又怎样?我认为,对于这个话题不断发展的问题,更多更新的答案总是受欢迎的。尤其是在2020年它仍然是谷歌搜索排名前列... - cupiqi09

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接