objective-c和Java、iPhone和Android之间有什么巨大的区别吗?

objective-c和Java、iPhone和Android之间有什么巨大的区别吗?,java,iphone,objective-c,android,porting,Java,Iphone,Objective C,Android,Porting,编辑:我的错,我指的是客观的c,不是c。出于某种原因,我把它记在脑子里,那是iphone使用的c#。所以c#的答案很好,谢谢,但它们有点不相关,对此表示抱歉 我看了一下,但找不到任何答案,尽管有一些人通过回答部分问题缩短了问题。在一个小组中,我们计划在iPhone和Android上做一些工作,两个大部分是分开的,但互相帮助,一些人在他们之间做图形工作 但我们正在考虑在这两个应用程序之间移动东西的可能性,不一定是应用程序,可能只是有用的类或其他东西。看看objective-c和Java,它们的功能

编辑:我的错,我指的是客观的c,不是c。出于某种原因,我把它记在脑子里,那是iphone使用的c#。所以c#的答案很好,谢谢,但它们有点不相关,对此表示抱歉

我看了一下,但找不到任何答案,尽管有一些人通过回答部分问题缩短了问题。在一个小组中,我们计划在iPhone和Android上做一些工作,两个大部分是分开的,但互相帮助,一些人在他们之间做图形工作


但我们正在考虑在这两个应用程序之间移动东西的可能性,不一定是应用程序,可能只是有用的类或其他东西。看看objective-c和Java,它们的功能似乎与最大的障碍是系统接口的东西差不多,所以我们想知道,如果我们在每个系统上对它们创建一个抽象,这样它们就可以得到相同的输入(除非我错了,否则不会给系统带来太大的压力?),在编写objective-c和Java之间转换的东西时会有什么问题,比SDK中方法的位置更糟糕吗?或者,在一种语言中是否有其他语言所没有的关键功能或其他东西,而我们却错过了这些功能或东西,这意味着唯一的解决方法就是从头开始重写。

你不能用与Android相同的语言为iPhone开发。对于iPhone,你只能用Objective C编程,它是由苹果公司开发的。你不能在android上使用它,开发iPhone的唯一方法就是使用这种语言(在用户协议中)

至于C#vs.Java,整个原则是不同的。Java是每种平台的一种语言,.Net是每种语言的一种平台。它们不兼容。您可以在Android上使用Java,但我不确定您是否也可以使用C#(.Net)


无论如何,你必须为这两个移动操作系统构建两个不同的应用程序。

如果你专注于抽象系统交互之类的东西,并坚持使用这些语言的公共子集,那么你可能可以构建只需要很少修改或不需要修改就可以从一种语言迁移到另一种语言的类

C#确实比Java有更好的泛型实现,因为C#的泛型在运行时保持强类型


C#还有LINQ,据我所知,它在Java中还没有等价物。LINQ提供了一种类似SQL的查询功能,内置于该语言中,完全受.NET frameowrk支持,它允许您查询对象集合,并以非常实用的语言风格进行查询。一旦查询提供程序提供了转换为其他格式的对象模型,LINQ就可以被查询提供程序扩展,以处理其他数据格式,如XML和SQL。LINQ还使多核工作的并行化变得非常容易。这是对语言能力的巨大扩展。

如果你正在考虑进行Android开发,我最好的建议是使用java。编写一个完整的抽象层(假设可以)来将C#转换为Java并没有任何好处。至于IPhone的开发,不要怀疑使用Objective-C也可以达到同样的目的。

类似的工具,并告诉我们,您实际上可以将Java代码(从Android应用程序或从头开始创建)交叉编译为IPhone上运行的Objective-C代码,而无需在苹果方面安装任何虚拟机

我建议看

不幸的是,苹果的许可证 iphonesdk协议禁止 Java虚拟机的移植 将机器连接到iPhone。在这个 我们介绍一个开放的 SourceJava-to-Objective-C 交叉编译器以及基于Java的 可可图书馆的实施。 在这些工具的帮助下,iPhone 应用程序可以用纯文本编写 JAVA使用Java版本的Cocoa, 可以运行基于Java的 作为Java的iPhone应用程序 桌面/小程序应用程序,可以 交叉编译以在本机上运行 苹果手机。会谈将讨论这个问题 Java-to-Objective-C的挑战 交叉编译器以及 基于Java的Cocoa版本。细节 可在

如需了解更多信息,可从2010年4月开始在iPhone上交叉编译Android应用程序,该演讲记录在:

Android是移动设备的开源平台。由谷歌发起的安卓系统备受关注。Android应用程序是使用Java开发的,尽管有一个特殊的编译器将类文件转换为专有的、基于注册的虚拟机,用于Android设备上执行应用程序。Android为编写移动应用程序定义了自己的API。在XMLVM的帮助下,可以将基于Java的Android应用程序交叉编译为本机iPhone应用程序

Android应用程序是用 Java并使用Android 特定API。XMLVM提供了一个 兼容性库,用 Java,它提供与 Android,但只使用 基于Java的Cocoa Touch API。在期间 交叉编译过程 应用程序和Android 兼容性库是 从Java交叉编译到 目的-C,并与可可有关 触摸兼容性库以生成 本机iPhone应用程序

2008年关于为iPhone构建Java应用程序的演讲:

苹果的iPhone产生了巨大的影响 用户和开发者的兴趣 同样地像MacOS X一样,iPhone 开发环境基于 目标C作为发展 GUI的语言和功能 图书馆。iphonesdk许可证 协议不允许 虚拟机的开发。 通过使用XMLVM,我们可以避免这种情况 将Java交叉编译到 苹果手机。就像Java应用程序一样 可以交叉编译为AJAX、XMLVM C