写点什么

Codename One 新增对面向通用 Windows 平台的 Java 应用的支持

  • 2016-07-04
  • 本文字数:1035 字

    阅读完需:约 3 分钟

Codename One 是一个流行的应用开发环境,允许使用 Java 开发各种平台的应用,现在,它又增加了对面向通用Windows 平台的Java 应用的支持。这样,Java 开发人员就可以针对任何安装了Windows 10 的设备进行开发——不管是手机、平板,还是台式机——Codename One 支持的目标平台的数量增加到了8 个。

在移动开发领域,多个竞争平台的存在导致了市场碎片化,开发人员常常需要在两个对立的选项之间作出选择:为每个目标平台(iOS、Android、Windows Phone 等)开发原生应用程序,以更高的开发维护成本为代价提供最佳的用户体验;或者,开发一个面向所有平台的解决方案,通常是以Web 的形式,这可以更好地利用时间和资源,但放弃了不同平台所特有的优势。类似Codename One 或Appcelerator 这样的工具介于两者之间,它们设法提供统一的开发体验,同时又利用了部分平台特有的功能。

截至目前,Codename One 用户使用Java 开发了应用程序,不需要对源代码做任何修改,就可以创建用于各种平台的安装包,包括iOS、Android、Blackberry、Windows Phone、JavaScript、J2ME 和桌面。之所以能够做到这一点,其中一个原因是使用了可以面向所有不同平台的构建服务器,并结合了类似ParparVM 这样的桥接技术。另一方面,借助Windows 10 及其通用Windows 平台,微软向设备融合迈进了一步:UWP 应用程序可以安装和运行在任何运行Windows 10 的设备上,可以是手机、平板或PC。结合这两个事实,允许Codename One 以UWP 作为目标平台将使开发人员的应用程序可以安装在3 亿台新设备上。

Codename One 使用了 IKVM.NET ,后者是 Mono 和.NET Framework 的 Java 实现,可以以 UWP 为目标平台。IKVM 包含 JVM 和 Java 类库的.NET 实现,以及用于 Java 和.NET 互操作的工具。当以 UWP 为目标平台时,Codename One 会编译 Java 应用程序,并把它和 IKVM 及特定于 Windows 10 的配置设置打包在一起;这可能不如直接使用.NET 开发应用程序好,但好处是可以重用相同的源代码。

这种方法是否会成为主流还有待观察。虽然将相同的代码用于许多平台的观点听起来非常有吸引力,但从 Codename One 的先前版本所引发的反响来看,社区用户似乎有一个共同的看法,就是对 App 有着非常高的期望,而开发人员往往认为,唯一能够满足这种预期的方式是开发原生应用。不出意外,简化将现有 Java 应用移植到 UWP 的过程几乎肯定会增加 Windows 10 平台应用的数量。

查看英文原文 Codename One Adds Support for Java Apps to Target the Universal Windows Platform

2016-07-04 19:001657
用户头像

发布了 1008 篇内容, 共 402.2 次阅读, 收获喜欢 345 次。

关注

评论

发布
暂无评论
发现更多内容

面试官:react中的setState是同步的还是异步的

全栈潇晨

React

C++ 开发笔记

行者孙

内容合集 签约计划第二季

带波浪效果的CollapsingToolbarLayout + RecycleView

阿策小和尚

28天写作 Android 小菜鸟 12月日更

面试官:useLayoutEffect和useEffect的区别

全栈潇晨

React

Scrapy Spider中间件,你学会了吗?本篇博客有一案例

梦想橡皮擦

12月日更

亿级流量实验平台设计与实现

高性能架构探索

架构 分布式 微服务 签约计划第二季 实验平台

彻底搞通服务发现的原理和实现

高性能架构探索

架构 分布式 微服务 服务发现 签约计划第二季

给弟弟的信第13封|一个北京姑娘的艰辛生活

大菠萝

28天写作

Flyway让数据库版本管理更简单

恒生LIGHT云社区

数据库 sql SqlServer

有了代码变更分解提交工具SmartCommit,再也不担心复合提交了

华为云开发者联盟

代码 复合提交 SmartCommit 代码提交 代码提交原子性

技术实力过硬,旺链科技斩获“年度区块链技术突破奖”!

旺链科技

区块链 区块链技术 产业区块链

用户文章转载:一图看懂 | 我用这张图,看懂了 P4 Reconcile

龙智—DevSecOps解决方案

perforce 一图看懂 P4 Reconcile

深入理解Flutter相机插件【Flutter专题22】

坚果

flutter 28天写作 签约计划第二季 12月日更

JerryScript:物联网开发者的得力工具

华为云开发者联盟

物联网 LiteOS JerryScript 引擎 物联网应用

吃透负载均衡

高性能架构探索

负载均衡 架构 分布式 微服务 签约计划第二季

实用机器学习笔记十四:多层感知机

打工人!

人工智能 机器学习 算法 学习笔记 12月日更

Linux中国对话龙蜥社区4位理事:龙蜥操作系统捐赠的背后,是谁在推动?

OpenAnolis小助手

Linux 国产操作系统 龙蜥社区

React进阶(五):导航守卫

No Silver Bullet

React 路由 12月日更

欢迎举报Perforce Helix Core盗版行为

龙智—DevSecOps解决方案

盗版软件 perforce盗版 打击盗版

一文带你熟知ForkJoin

华为云开发者联盟

jdk 并发编程 并发 forkjoin 多线程并发

react源码解析12.状态更新流程

buchila11

React

【LeetCode】寻找旋转排序数组中的最小值Java题解

Albert

算法 LeetCode 12月日更

流量控制-从原理到实现

高性能架构探索

架构 分布式 微服务 签约计划第二季

智能运维之时间序列预测中的经典时序模型

云智慧AIOps社区

机器学习 算法 智能运维 云智慧 指标预测

netty系列之:小白福利!手把手教你做一个简单的代理服务器

程序那些事

Java Netty 代理 程序那些事 12月日更

lock-free在召回引擎中的实现

高性能架构探索

架构 分布式 微服务 签约计划第二季

Elasticsearch 查询最大时间(qbit)

qbit

sql UTC TimeZone 时区

react源码解析11.生命周期调用顺序

buchila11

React

面试官:如何实现 List 集合去重?

王磊

java面试

前端架构师修炼指南精选

杨成功

前端 架构师 内容合集 签约计划第二季

阿里云田涛涛解读未来自动化运维新思路:CloudOps

阿里云弹性计算

CloudOps 云上运维

Codename One新增对面向通用Windows平台的Java应用的支持_Java_Abraham Marín Pérez_InfoQ精选文章