当前位置: 首页 > 知识库问答 >
问题:

代号一是如何工作的?

邵捷
2023-03-14

我正在为多个移动平台开发替代方案,并找到了代号为One,它使用Java作为通用语言,而不是HTML/CSS/JS或脚本语言。

共有1个答案

施自明
2023-03-14

Codename One有一个可选的SaaS方法,所以将来可能会改变这种方法,以适应改进的体系结构。请注意,Codename One还提供了一个离线构建的选项,这意味着有策略禁止此类云架构的公司仍然可以使用Codename One,但需要一些额外的开销/复杂性。这也意味着您可以免费使用它,而不必使用构建服务器。

目前在Android上,标准Java代码是按原样执行的。Java8语法在所有平台上使用retrolambda进行翻译。这使得它可以兼容所有Android版本以及其他端口。

在iOS上,代号是一个构建的&开源的ParparVM,这是一个非常保守的虚拟机。ParparVM具有并发(非阻塞)GC,它完全用Java/C编写。这实际上意味着xcode项目是在构建服务器上生成和编译的,因此它实际上就像你手工编写了一个原生应用程序,从而为苹果所做的更改提供了“未来的证据”。例如。随着最近对iOS构建的64bit和bitcode的更改,ParparVM不需要任何修改来遵守这些更改。

在过去,Codename One使用依赖于XMLVM的C#翻译器支持Windows Phone,但这并不是一个理想的方法。请注意,转换为C#的XMLVM后端与以前用于转换为IOS的XMLVM后端非常不同。Codename One选择停止旧的后端,因为它不如新的UWP后端强大,也不符合Microsofts的目标,前进并专注于UWP(通用Windows平台)。

对于Windows 10桌面和移动支持,Codename One使用iKVM来针对UWP(通用Windows平台),并在Codename One github存储库中开源了对原始iKVM代码的更改。

请注意,UWP构建是在云中的Windows 10机器上完成的,因此允许开发人员在构建本机Windows应用程序时使用MaC/Linux或更旧版本的Windows...

企业级订阅服务器上可用的JavaScript构建目标使用TeaVM静态地执行转换。TeaVM以一种相当复杂的方式分解应用程序,从而提供了对使用JavaScript进行线程处理的支持。为了支持复杂的UI代号,可以使用HTML5 Canvas API,这使得构建应用程序具有绝对的灵活性。

对于desktop builds,Codename使用JavaFXPackager,因为Mac和Windows机器都可以在云中使用,JavaFXPackager的平台特性不是问题。

Codename One的突出之处在于它对UI采用的方法,它使用“轻量级架构”来允许UI在所有平台上无缝地工作,并且几乎完全用Java开发。通过将“重量级”小部件嵌入到“轻量级”中的能力,它得到了增强。你可以在这篇博客文章中了解更多关于这一点的信息。请注意,此时peering正在经历一些改进,现在支持更复杂的用法,如分层。

Codename One背后的核心技术都是开源的,包括Codename One自己开发的大部分东西,例如ParparVM,但也包括完整的库、平台端口、设计器工具、设备外观等。您可以在这里了解更多关于使用Codename One源代码的信息。

这个答案的作者FYI Shai Almog是Codename One的首席执行官。

 类似资料:
  • 有时代号为One的团队表示修复将在几周内到来,而其他时候他们表示已经修复。这种不透明性显然与云服务器的更新有关,但我不清楚是否只是云服务器&插件,还是我遗漏了什么。为什么没有一个单独的更新过程? 我真的想要一个更明确的答案,比如代号一是如何工作的?为了这个。

  • Kotlin定义了自己的类: 该类的实例是通过中定义的内联函数构造的: null 我认为在编译之前必须进行某种代码预处理。 请随意用一个更贴切的标题编辑这个问题。

  • 问题内容: 信号量可以小于0吗?我的意思是说我有一个N = 3的信号量,并且我叫“ down” 4次,那么N将保持为0,但是一个进程将被阻塞吗? 同样,如果一开始我打电话给我,N是否可以高于3?因为如我所见,如果N可以大于3,如果一开始我调用了两次,那么以后我可以调用的次数比我可以调用的次数多,因此在关键部分放置了更多的进程,则信号量使我可以。 如果有人为我澄清一下,我将不胜感激。 格雷格 问题答

  • 可能的重复: C++中指针变量和引用变量有什么区别? 这让我很困惑: 在C语言中&通常表示VAR的地址。这里是什么意思?这是指针符号的一种别致方式吗? 我之所以假设它是一个指针符号,是因为这毕竟是一个指针,我们正在检查两个指针是否相等。 我在cplusplus.com上学习,他们有这个例子。

  • 应用程序具有上下文路径-->/spring-form-simple-project 因此,为了访问,我使用: 这个控制器又返回student.jsp,当提交这个student.jsp时,它用-->@RequestMapping(value=“/AddStudent”,method=RequestMethod.post)调用controller 任何关于这通常如何工作的指示都将是有帮助的。 谢谢!

  • 本文向大家介绍hibernate 是如何工作的?相关面试题,主要包含被问及hibernate 是如何工作的?时的应答技巧和注意事项,需要的朋友参考一下 读取并解析配置文件。 读取并解析映射文件,创建 SessionFactory。 打开 Session。 创建事务。 进行持久化操作。 提交事务。 关闭 Session。 关闭 SessionFactory。