JAVA网页编程之前Sun开辟职员为Android,iOS等其他挪动平台供应JAVA的WORA撑持仓酷云 ...
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包......2012年,在以色列呈现了一个名为Codenameone的公司,该公司旨在天生一种新的JavaSDK,该SDK将同意Java开辟职员经由过程一个单一的代码库就可以为包含iOS,Android,BlackBerry和WindowsPhone等一系列的挪动设备编写当地使用。关于iOS,Codenameone经由过程本人的云服务器先将Java代码转换成C大概ObjectiveC代码,然后再将转换后的源代码编译本钱地使用程序。这使得使用Java来编写iTunes兼容使用成为大概。Codenameone的两年夜开创人分离是ChenFishbein和ShaiAlmog。Fishbein是JavaME尺度用户界面工具——LightweightUserInterfaceToolKit(LWUIT)的开创人和首席架构师,而且他还开辟了当下最乐成的JavaME开辟工具之一的SprintWirelessToolKit。
该平台现正处于Beta测试阶段,InfoQ下载落后行了测试。这个历程消费了很长的工夫。为了构建代码,必要将他们基于云服务的网址增加到代码库中。代码将被上传到该服务器并举行编译,然后天生一个二维码(QRcode),经由过程该二维码你能够下载并安装终极的程序到设备中。出于猎奇,为了更多的懂得该公司,我们采访到了该公司的团结开创人兼CEOShaiAlmog师长教师,扣问了一些关于他们最新公布对WindowsPhone供应撑持的事件。
InfoQ:你好Shai,这个设法由来已久了。这真的是一个全平台通用的Java情况吗?
Almog:Java不单单是一个假造机,它也是一个一致的仓库,一系列的工具集,实践上更是一个完全的Java生态圈。Java的意义在于它的剑拔弩张。即使是Android,也必要一套分歧的流程,一套分歧的工具集和一个针对分歧设置的的摹拟器。如许以来,我们反而得到了“一处编译,各处运转(WORA,WriteOnceRunAnywhere)”的上风。
InfoQ:关于分歧的情况必要分歧的修正吗?
Almog:不完整是,Codenameone为分歧的平台供应一致的API撑持,并将它们间接集成到Java情况中,经由过程一个一致的情况来办理一切分歧的细节成绩。
InfoQ:是不是为每个平台都设置了响应的JVM?
Almog:不,这取决于平台。关于Android,我们次要仍是利用Dalvik假造机。可是关于没有Java情况的iOS平台,我们就将classes文件翻译成ObjectiveC的代码,而且利用Boehm的渣滓接纳器。该接纳器能运转Java代码,但他并非真正意义上的Java假造机。在RIM和其他平台上,我们经由过程平台上现有的无限Java子集特征来举行编译。如许就能够取得跟Java一样的WORA体验了。
InfoQ:你们试图在每一个版本的公布中都对一切平台的一切特征都举行撑持吗?
Almog:我们在全力,但因为底层设备的变更,一般情形下很难到达。SQL就是一个很好的例子,开辟者都想利用它,可是一些低真个设备其实不撑持。开辟者能够检察每一个特定情况下的撑持情形。我们的战略是供应一个只管通用的汇合,并尽量地完美它。
InfoQ:我必要一些实在的设备来举行开辟吗?
Almog:实际上是不必要,可是你不克不及仅仅经由过程鼠标来体验使用程序;你必要实在的拿着你的手机而且感觉它来取得正确而实在的功能和利用感觉。我们就由于一些版本上的渺小变更而利用分歧的iPad。
InfoQ:关于这么多分歧的Android版本,它完成起来应当对照坚苦吧?
Almog:实践上iPhone更坚苦。Apple在不休的变更,在4.2上运转的体例大概在4.3上就是别的一种完整分歧的做法。此时你会发明统统都运转不起来了。Android固然有良多的版本,可是他们一般很少会有损坏性的改动,以是,差别并非很年夜。
InfoQ:使用程序的利用者必要安装甚么特定的程序吗?
Almog:不必要,统统均包括在使用中。这能够匡助我们坚持不乱性我们坚持的很不乱的缘故原由是由于我们不撑持一些挪动的假造机方针。分歧版本的设备差别化很年夜,可是我们只存眷各个版本之间的兼容性成绩,云云一来,开辟者们也不必要往存眷它了。
InfoQ:关于Java开辟者来讲,进修曲线是如何的?
Almog:这实在相称的复杂。关于年夜部分的Swing开辟者来讲,跟基于XML的Android比起来,他更像是Swing的开辟体例。你可使用内置的调试器,这里没有APK文件,你也不必要守候摹拟器启动,我们的摹拟器在每次运转的时分就可以立即启动起来。
InfoQ:有些人说Swing有点凝滞,并没有原生Windows使用的那种用户体验。你们的平台有甚么好的做法来使他们看起来跟时髦一些吗?
Almog:Swing的界面是很难定制的,因为它是和JDK的版本举行绑定的,以是不克不及在表面和体验上跟操纵体系坚持分歧。CodenameOne同意在组件模子上做深度的作风和主题定制,并且由于我们是SaaS和OpenSource的成员,我们能够欠亨过Sun/Oracle迟缓的晋级流程,而单独在使用程序的体验上坚持不休更新。如许就可以包管一个时髦的用户体验。
InfoQ:对3D图象的撑持怎样?
Almog:很遗憾,关于这一点,我们今朝还不撑持游戏类的开辟。可是信任在将来大概有所变动。
InfoQ:那关于那些设备特定特征的撑持呢,好比I/O,GPS,摄像头,音频等等?
Almog:我们都撑持这些基础的API,我们正在开辟手势操纵,而且如今有些已能够撑持了,可是假如你必要一些我们其实不撑持的特征,那末我们能够给你供应当地集成。你能够界说接口,然后我们的插件会为你的设备天生当地代码,如许你就能够挪用那些当地功效了。
InfoQ:产物是怎样免费的?
Almog:基础版是收费的,并且我们会一向这么做下往。报答社区长短常主要的。每月我们会为除iOS之外的其他平台供应100次的构建服务。假如你是当地构建的话,你能够随便构建,可是我们的构建服务器限定你只能举行100次构建。iOS平台被我们限定成一个月只能举行5次构建,由于关于我们来讲,每次的构建价值都是相称高贵的。你还能够每月消费9美圆,以取得不限次数的构建。我们还为一些分外的特征供应了更多的订价计划,好比宕机回护。
InfoQ:你们的文档和撑持做的怎样?
Almog:《开辟指南》是我们约请社区协助编写的一个100多页的Google文档。我们也保护了一份具体的JavaDoc而且消费了大批的工夫在保护GoogleGroup邮件列表。
InfoQ:看起来你们仿佛在做一件巨大的事变啊。那你们下一步有甚么盘算呢?
Almog:即刻就会有良多好动静了。到玄月下旬的时分,对Windows设备的撑持将会开放。届时我们将增加使用内的付出功效,和针对客户端和摹拟器开放更初级的API,供应给开辟者更多的模版。并且我们方才发布了同Vserv的合股企图,如许开辟者在不改动任何代码的情形就可以增加告白进本人的程序。
跟着撑持多挪动平台的公司愈来愈多,CodenameOne能够匡助那些开辟更多新使用的公司进步市场占据率和利润。该SDK能够在其官网长进行下载。
检察英文原文:ExSunDevelopersBringWORAJavaSupporttoAndroid,iOS,andOtherMobilePlatforms
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 是一种将安全性(Security)列为第一优先考虑的语言
页:
[1]