iOS应用开发的五个Java开源工具

随着第三方工具的不断壮大,开发人员逐渐摆脱政策束缚对于iOS系统的封闭性为其他语言(如Java)开发者诟病得到解脱,开始使用自己熟悉的语言来编写iOS本地应用,或将其他平台上的应用移植到iOS上。

本文为你介绍5款开源的开发工具,帮助你使用Java轻松开发iOS应用。想了解更多Java知识推荐学习java基础与加强教程。

1、Codename One

Codename One是一个针对移动应用开发者的、开源的、跨平台的Java工具,旨在帮助Java开发者通过单一代码库来针对所有移动平台(智能手机和平板电脑)构建本地应用,且无需在应用性能、功能或开发简易性方面妥协。该工具是开源的,可免费用于商业用途。

2、RoboVM

RoboVM可以将 Java 字节码编译成 ARM 或者 x86 平台上的原生代码,应用可直接在CPU上运行,无需其他解释器或者虚拟机。

RoboVM同时包含一个Java到Objective-C的桥,可像其他Java对象一样来使用 Objective-C对象。且支持大多数UI Kit,将来会支持更多的框架。

RoboVM基于 GPLv2 许可协议。

3、XMLVM

 

 

XMLVM项目的目标是提供一种灵活的可扩展的交叉编译器工具链。XMLVM基于Sun的JVM和微软的CLR(公共语言运行时)上的字节码进行交叉编译,而非源码。

通过XMLVM,你可以轻松将Java代码编译为Objective-C,在iOS平台上运行。

4、J2ObjC

J2ObjC(Java to Objective-C)是谷歌出品的一个开源的命令行工具,旨在使开发者基于Java编写的非UI代码(如数据访问、应用程序逻辑等),可以在Web应用(使用GWT开发)、Android应用和iOS应用之间共享。

不过J2ObjC并没有提供任何形式的独立于平台的UI工具包,iOS应用的界面仍需要使用Objective-C/C++和iOS SDK来开发。

5、Avian

Avian出现在这里似乎有点不合适,因为它没有解决Java转iOS的具体问题。但是,Avian是一个轻量的JVM,其中包含了一个工具,可以将Java字节码转换为能够运行在ARM设备(如iPhone)上的本地二进制文件。

以上是5款对于Java开发者来说非常实用的iOS开发工具,你可以登录e良师益友网学习更多详细编程语言教程

转载于:https://www.cnblogs.com/yuguotianqing/p/3968850.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Tensorflow】解决No module named ‘matplotlib‘/‘pandas‘

用Tensorflow出现No module named ‘matplotlib’/‘pandas’ 尝试网上方法打开终端pip install pandas 不成功,报一大堆红字错误。自己尝试了一种方法。 打开Anaconda Navigator;找到Environments,点击对应环境,我的是tensorfl…

人之将死其言也善?30年来死囚遗言分析

今天是感恩节,不知道这个话题合适不合适。我们经常会提到『死而无憾』这个词。这个词似乎是一种理想状态,几乎100%的人还是做不到的。那么我们的『憾』在哪里?这个问题看似不是难题,不过仔细想想是永远没答案的,人只有…

如何通过 C# 比较两幅图片的相似度?

咨询区 Byyo我在用 C# 实现一个可以查找重复图片的小工具,我目前是给每一个图片做一个 md5 码,然后通过 md5 值来判断图片是否相同。但现实情况要复杂的多,比如:图片被旋转了,比如:90图片大小不一致不同的压…

linux之用openssl命令Base64编码解码、md5/sha1摘要、AES/DES3加密解密

1、我们先看openssl help命令会输出什么? 2、我们用openssl命令实现字符串和文本的Base64编码和解码 openssl base64 openssl base64 -d 3、我们用openssl命令实现字符串和文本的md5/sha1摘要

陈松松:如何锁定细分领域,视频营销才更容易持续做下去

每个视频,都是你的金牌业务员这是我写的第33篇视频营销原创文章与其搜索十年,不如花一年的时间学习,去赚9年的高薪!很多朋友都在探讨,视频营销越来越难了,得转行了!我想说的是,自己不…

转:工作流服务Workflow Service(1):ReceiveActivity

转:http://www.cnblogs.com/carysun/archive/2009/01/11/receiveactivity.html 在.NET3.5中WF提供了和WCF的整合,就是工作流服务,即使用工作流创作的 WCF服务。服务协定的实现是通过一个或多个 ReceiveActivity 活动处理的。在WCF中提供了三种…

Echart..js插件渲染报错 data.length1?

问题 getJSON提交 返回数据正常&#xff0c;在传入参数进行序列化&#xff0c;渲染报表时报错 option.data.length < 1. 分析 1.可能情况一: . 可自己明明是getJSON()把渲染放在成功回调函数里面了&#xff0c;所以显然不是这个错误 2.可能情况二 &#xff1a; 序列化数据没…

《JavaScript专家编程》——第1章 对象和原型 1.1鸟瞰JavaScript

本节书摘来自异步社区《JavaScript专家编程》一书中的第1章&#xff0c;第1.1节&#xff0c;作者&#xff1a;【美】Mark Daggett&#xff08;达格特&#xff09;著&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 第1章 对象和原型 练习不会造就完美&#xf…

c#使用PdfiumViewer展示、打印pdf文档

1:简介PdfiumViewer 是一个 WinForms 控件&#xff0c;它承载一个 PdfRenderer 控件并添加一个工具栏来保存或打印 PDF 文件2:兼容性除了常规的win7 win10 也支持xp win83:对比Spire.Pdf和Adobe PDF ReaderSpire.Pdf收费且免费版只能打印三页的pdfAdobe PDF Reader每台电脑都必…

apache 静态编译和动态编译参考

apache-2.2.22 编译安装笔记 一、静态编译 在使用./configure 编译的时候&#xff0c;即没有使用--enable-mods-shared[module]或者--enable-[module]shared这2个中的一个&#xff0c;那么所有的默认模块为静态。何谓静态&#xff1f; 其实就是编译的时候所有的模块自己编译进h…

jQuery插件ASP.NET应用之AjaxUpload

本次使用AJAXUPLOAD做为上传客户端无刷上传插件&#xff0c;其最新版本为3.9&#xff0c;官方地址&#xff1a;http://valums.com/ajax-upload/ 在页面中引入 jquery.min.1.4.2.js 和 ajaxupload.js Html代码 <script src"Scripts/jquery-1.4.2.min.js" type&quo…

Avalonia跨平台入门第十一篇之自定义Window

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定;今天趁着周末接着去摸索自定义Window样式,毕竟自带的样式不太让人满意;最终实现的效果如下图:前台Window样式:后台Window代码:咱也基于AvalonS…

ie8下修改input的type属性报错

摘要&#xff1a; 现在有一个需求如图所示&#xff0c;当用户勾选显示明文复选框时&#xff0c;要以明文显示用户输入的密码&#xff0c;去掉勾选时要变回密文&#xff0c;刚开始想到的就是修改输入框的type来决定显示明文还是密文&#xff0c;使用jQuery的attr来做试验&#x…

dotNet Core使用SignalR实现websocket

前言:最近有一个公司项目做一个排队叫号系统&#xff0c;系统功能不复杂&#xff0c;所以后端就我一人&#xff0c;难点在于消息推送到安卓屏上&#xff0c;最近有点时间&#xff0c;把我工作中使用的技术分享出来&#xff01;整个技术架构:前端使用vue uniapp&#xff0c;后端…

《手机测试Robotium实战教程》——导读

本节书摘来自异步社区《手机测试Robotium实战教程》一书中的导读&#xff0c;作者 杨志伟&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 目 录前 言第1章 自动化测试简介 1.1节何为自动化测试1.2节自动化测试和手动测试的对比1.3节移动端自动化测试工具的选…

为record类型自定义Equals方法

前言record类型&#xff0c;这是一种新引用类型&#xff0c;而不是类或结构。record与类不同&#xff0c;区别在于record类型使用基于值的相等性。例如&#xff1a;public record DemoRecord(int id);public class DemoClass {public DemoClass(int id){this.id id;}public in…

解决IDEA修改已有项目为maven项目时目录结构被改变的问题

Idea可以在项目根目录上右键选择“添加框架支持”&#xff0c;选择maven&#xff0c;为项目添加Maven支持。 但这样会导致原有项目的目录结构被破坏。 更好的方法是在根目录添加pom.xml文件 在<build>标签内添加 <sourceDirectory>标签&#xff0c;并填入源码根目…

排序——选择排序

选择排序 作者&#xff1a;上品物语 知识点&#xff1a; 原理示意图算法特点复杂度1.1 原理 首先&#xff0c;找到数组中最小的那个元素&#xff0c;其次&#xff0c;将它和数组的第一个元素交换位置&#xff08;如果第一个元素就是最小元素&#xff0c;那么它就和自己交换&…

.Net/C#分库分表高性能O(1)瀑布流分页

框架介绍依照惯例首先介绍本期主角:ShardingCore 一款ef-core下高性能、轻量级针对分表分库读写分离的解决方案&#xff0c;具有零依赖、零学习成本、零业务代码入侵dotnet下唯一一款全自动分表,多字段分表框架,拥有高性能,零依赖、零学习成本、零业务代码入侵,并且支持读写分离…

centos静默安装oracle关于报错UnsatisfiedLinkError exception loading native library:njni10

静默安装oracle时&#xff0c;日志文件中打印出如下语句 提示Oracle NetConfiguration Assistant failed&#xff0c;原因是找不到libaio.so.1 这是缺少依赖 执行指令 yum -y install libaio* libaio-devel* 删除home文件夹&#xff0c;再次执行 ./runInstaller -silent…