代码之家  ›  专栏  ›  技术社区  ›  esfox

Codename One是否与移动平台的默认语言具有相同的功能?[已关闭]

  •  -1
  • esfox  · 技术社区  · 9 年前

    因此,我最近发现了Codename One,并对它使用Java开发跨平台移动应用程序这一事实感兴趣。

    我在想,它是否比移动平台使用的默认语言更好或更差。

    它与默认语言的功能是多少还是相同?它能在默认的Android Java上做任何事情吗?它与违约有什么区别,有什么优点和缺点?

    2 回复  |  直到 9 年前
        1
  •  0
  •   James H    9 年前

    大多数设备通用的大量功能都可以通过CN1的API实现,因此您只需编写一次代码,然后为任何设备构建它。您可以为GUI做同样的事情,也可以为每个平台定制它。

    CN1 API中仍有许多未直接公开的功能。您可以为那些成为从主设备不可知的CN1程序到您在本机平台代码中编写的特定于平台的类的连接路径的类创建本机接口。它可以像任何Java接口一样工作,因此您只需为每种语言(Objective C、C#、Dalvik等)所需的每个方法编写本地代码。

    此外,您可以创建一个CN1LIB,它基本上是一个本机接口和本机类,这些本机类一起编译成一个JAR,CN1将使用它,就像它是一个包含的API一样,因此您可以获得自动代码完成和其他不错的IDE特性。

        2
  •  0
  •   Community CDub    8 年前

    Codename One不能做设备上没有的事情,比如在2d设备上拍摄3d图片。

    就为程序员提供设备上无法提供的便利而言,你可以在Android上使用Java 8语言功能,即使Android上没有这些功能。您可以在iOS上使用Java和GC,在JavaScript上运行时可以有线程,因此它确实会将本地操作系统中不可用的内容添加到表中。

    默认情况下,您无法访问Android功能,您可以通过本机界面访问Android的每个功能,但在为iOS、Windows、JavaScript或其他平台构建时,您不能使用该功能。

    所以CodenameOne强加了“软限制”,你可以绕过它们,但你可能不应该经常这么做。

    我建议阅读 How does Codename One work?