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,一经查实,立即删除!

相关文章

(算法)最长递增子序列

问题: Given an array of N integer, find the length of the longest increasing subsequence. For example, given [1,-5,4,5,10,-1,-5,7], the longest increasing subsequence is length 4.(1,4,510) 思路: 1、枚举 枚举数组所有的子序列&#xff0c…

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

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

Android之在一个类里面注册Handler发送消息在另外一个类里面接收消息

1、问题 我们要在一个类里面变量或者函数变化需要改变另外一个类里面的东西,这个时候java里面除了接口回调之外,我们还可以用注册Handler来实现 2、代码实现 1、MainActivity.java文件 package com.example.handlercallback;import android.app.Activity; import android.o…

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

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

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

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

linux 命令-- touch

linux中文件元数据中有三个时间戳1.atime:最后一次访问时间2.mtime:最后一次修改文件内容的时间3.ctime:最后一次修改文件元数据的时间。(最后一次改变文件状态的时间,上面atime 和 mtime的变化、文件权限的变化等都会…

Python easy_install

系统中有高版本的Python, 直接pip3 install ipcalc安装,都是装到高版本的Python 系统默认的Python是2.7.6,现在想装到默认版本中,可以使用easy_install yuyueworkplace:/usr/bin $ sudo easy_install ipcalcPassword:Searching f…

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; 序列化数据没…

LeetCode之Valid Parentheses

1、题目 Given a string containing just the characters (, ), {, }, [ and ], determine if the input string is valid. The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are…

《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…

LeetCode之Remove Element

1、题目 Given an array and a value, remove all instances of that value in place and return the new length. Do not allocate extra space for another array, you must do this in place with constant memory. The order of elements can be changed. It doesnt matter…

运维前线:一线运维专家的运维方法、技巧与实践导读

前  言为什么要写这本书《运维前线&#xff1a;一线运维专家的运维方法、技巧与实践》&#xff08;以下简称《运维前线》&#xff09;是前线系列的一个子集&#xff0c;前线系列图书的出版理念是邀请多位业界专家&#xff0c;总结所在行业的最新理念或深度实践经验。前线系列…

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

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