公务员期刊网 论文中心 正文

Java程序设计语言在软件开发中运用

Java程序设计语言在软件开发中运用

摘要:本文从提升编程的效率、应用于计算机无线和移动工作中以及应用于企业与行业的发展中几方面内容着手,阐述了Java程序设计语言在软件开发中的应用方式,并以iOS手机软件为例对Java程序设计语言在软件开发中的实践运用进行了详细分析,旨在为相关人员提供参考。

关键词:Java程序设计语言;软件开发;iOS手机软件

0引言

Java程序设计语言在软件开发中进行应用的过程中有着较高的应用价值,能够同当前时代背景下更多的应用需求相适应,但从目前来看,其在应用过程中仍面临一定的不利因素,基于此,有必要对其展开更加深层次的探索。

1Java程序设计语言在软件开发中的应用方式

1.1提升编程的效率

Java程序的应用最主要的便是在编程效率的提升方面,以往在编程方面存在着来自诸多方面的限制,与此同时,其本身存在着较高的专业程度,但从目前来看,编程不再像从前一样面临较高的难度,与此同时,其在准入门槛方面也有所降低,强化对于Java程序设计语言的应用能够在极大程度上实现编程效率的提升,这样一来便能够有效发挥出其对于软件开发技术提高的推动作用。

1.2应用于计算机无线和移动工作中

在当前大数据技术飞速发展的时代背景下,人们开始将注意力和关注点放在无线和移动工作上,移动互联网运行的速度对于企业未来的发展情况有着直接影响,与此同时,还同编程与程序开发的速度息息相关。信息时代中人们在互联的需求方面存在着显著的提升,不管是娱乐还是购物都离不开互联网的支持,而企业的运行及发展效率同样需要网络技术以及通讯技术等的支持,唯有保障网络整体的发展效率,才能够为企业未来的发展提供更加稳定的支持。Java程序设计语言的应用能够在极大程度上促进计算及无线和移动工作的发展,Java编程能够在原有的基础上对其运行过程中进行不断的简化,进而实现网络运行速度的优化提升,这不仅能够切实提升程序开发的稳定性和实效性,还能够为企业的发展创造更加良好的条件[1]。

1.3应用于企业与行业的发展中

Java程序设计语言在部分行业和企业发展的过程中有着较为广泛的应用,并在实践中呈现出了较高的应用价值,以IBM企业为例,其便通过Java程序设计语言的应用,构建起了IBM企业开发的软件和能够与之相适应的服务器,进而获得了更加全面和深层次的发展。除此以外,Java在电子业或者是经济金融业等诸多企业中也有着一定的应用,当前已经有诸多高等教育学校都开始设立了专门针对Java程序语言教学的课程,并培养了诸多专门的人才,在极大程度上转变和改善了学生的思维方式。在未来我国的经济发展中,Java程序设计语言的应用范围将会得到进一步扩展,其技术也会持续更新升级,切实发挥出其自身的重要作用。

2Java程序设计语言在软件开发中的运用——以iOS手机软件为例

2.1应用思路

通常情况下来说,Java语言会应用在对于Android手机软件的开发上,而iOS则大多会采用c++或者是Objective-C语言进行开发。所以当在对一款移动端应用进行制作的时候需要同两个平台相适应,便要对两个不同的开发语言进行应用,在各自平台上分别将相同的逻辑开发一次。但此举往往涉及到对于大量人力和财力的浪费,特别是在时间方面的花费,对于移动互联网市场来说,时间是至关重要的影响因素,所以亟待采用适当的方法来解决这一问题。在综合考虑公司自身开发人员实际特点以及一个跨平台开发引擎实际情况的基础上,选用了RoboVM编译器以及libGDX游戏引擎。开发者可以基于Java语言对应用的逻辑部分进行开发,接下来再结合iOS本身的特性,对入口程度进行编写,这样一来便能够充分达到跨平台的效果。此举可以在极大程度上缓解普遍存在的重复劳动的问题,进而充分实现对于时间、财力以及人力成本的有效节约。与此同时,因为程序的逻辑部分为一套代码,所以能够为版本后续的开发以及维护工作的开展创造良好的条件。RoboVM编译器能够在原有的基础上对Java字节码进行翻译,使其以ARM或者是x86平台上原生代码的形式呈现,应用能够CPU上直接进行运行,不需要对其他虚拟机或者是解释器进行应用。RoboVM中涉及到一个Java到Objective-C的桥,可以同其他Java对象一样进行使用Objective-C的对象,绝大部分iOS开发的UIKit已经支持,在未来不断发展的过程中将会对更多的框架提供支持。

2.2需求分析

本次任务的主要目标便是将某款采用Java开发的游戏向iOS平台上进行移植,并使其能够在苹果的AppStore上架。该游戏主要是采用libGDX引擎对其进行开发,并将RoboVM作为桥,使其能够直接在iOS平台上进行编译,但除此以外,从本质上来看该应用有着较强的商业化特点,所以其不仅仅要能够成功实现其最基本的游戏逻辑的移植,同时还应当在其中额外引入商业化的SDK。具体包括应用内计费以及微信分享功能等等,本次的主要任务便是接入上述几种商业化功能[2]。

2.3系统设计

2.3.1libGDX游戏的生命周期。对于游戏开发来说,相关设计者应当能够对游戏的生命周期进行精确掌控,在libGDX基础上所进行的游戏开发中,ApplicationListener主要是对窗口进行创建和显示,还可以将其看作为一个简单的显示屏。在对libGDX项目进行创建的过程中,最初要创建便是ApplicationListener接口的对象,libGDX官方给出了相应的生命周期,如图1所示。在正式启动程序的时候可以对resize()方法以及create()方法进行调用进行初始化,而在运行的过程中则需要调动render()方法对游戏逻辑进行显示和运行。当暂停和恢复的时候,则需要分别对resume()方法和pause()进行应用,在正式关闭程序之前应当对dispose()方法进行调用,以达到销毁对象的效果。从上述内容可以知道,libGDX自然地以事件为驱动,这一点基本上同JavaScript与Android相似,其没有较为明显和突出的主循环,但是ApplicationListener.render()方法仍然能够作为主循环的主体存在。2.3.2在Xcode中接入应用内计费功能。应用内计费功能需要将StoreKit.framework加入到Xcode来实现。在现有的基础上对一个类进行创建,使其能够满足用户在应用内进行购买的需求,在类中要对SKPaymentTransactionObserver和SKProductsRequestDelegate这两个协议接口进行继承。其中SKPaymentTransactionObserver这个接口能够实现对于交易整体过程的全面监测,就算是在交易过程中因故从应用中推测出仍然能够继续进行交易,但是需要回到应用页面之后才能够完成最终的交易,类初始化使用如下:假设已经完成了应用中所要购买的类的编写工作,接下来便要进行购买。首先便是请求商品信息(RequestProducts)。_productRequest=[[SKProductsRequestalloc]initWithProductIdentifiers:_productIdentifiers];_productRequest.delegate=self;[_productRequeststart];上述便是一个完整的请求,针对productsIdentifiers来说,其是一个Set,具体指的是在这里进行一个Set的创建,并在其中加入ProductIdentifer即相关商品的具体信息。请求回调方法的结构具体如下所示:-(void)productsRequest:(SKProductsRequest*)requestdidReceiveResponse:(SKProductsResponse*)response{NSArray*skProducts=response.products;//process....}-(void)request:(SKRequest*)requestdidFailWithError:(NSError*)error{//process....}在请求成功之后便能够对相应的商品信息进行获取,其主要是一个NSArray的对象,其中涉及到SKProduct对象的相关产品信息,具体包括产品的价格以及名称的等等,从实际情况来看,上述内容基本上仅会在显示信息的过程中有一定的应用价值,在实际进行购买的过程中并不需要针对上述参数采取相应的操作措施,只需要对SKProduct进行应用便可。在运用SKProduct请求购买之后,应用便能够同AppStore之间相连接,从交易回调的实际情况来看,其主要涉及到三种状态类型,分别为交易成功、交易失败以及交易恢复。其中,在交易恢复这一交易状态方面,其主要指的是,若是存在部分用户运用一个账号在iPhone上购买产品,然后又于iPad上对该应用进行下载,那么该用户便不再需要对这一产品进行重复支付购买便可以在iPad进行应用。具体可以利用AppStore以及Restore对这个账号的购买记录进行检测,若是检测过程中发现其存在购买记录,那么用户便不需要对其进行重复购买,直接restoreTransaction[3]。通常情况下来说针对一次性计费点会采用NSUserDefaults进行记录,其中SKPaymentQueue的defaultQueue对象则产生了finishTransaction的方法,在对该方法进行调用之后,TransactionObserver便不对这个交易进行监测了。其他状态的处理同交易恢复这一状态的处理基本上类似,具体内容可以从官方所的开发文档中获取,此处不再过多解释。2.3.3微信分享功能设计。微信分享功能设计是该项目中至关重要的组成部分,当应用在微信开发者平台登记完毕之后,应当对微信的开发者SDK进行下载,微信SDK文件中主要包含三个文件,分别包括libWeChatSDK.a、WXApi.h、WXApiObject.h。微信SDK在iOS方面仅提供了支持Objective-C的版本,若想让它能够支持Java语言,应当在现有的基础上转换代码,但需要实现对Objective-C的项目的各方面实际情况进行了解,并明确如何实现其同微信平台之间的有效对接。对Java类接入微信SDK进行创建,全面了解微信分享功能的具体内容,然后设计者则需要用Java对这些Objective-C类进行应用。微信分享功能类图设计如图2所示。Objective-C同Java代码之间存在着特定的内在联系,当处在要调用一个方法的情况下,应当先对Java的方法进行调用,该Java方法被声明为native方法,与此同时其需要采用@Method对其进行修饰,这样便能够同Objective-C静态库中所存在的相关方法进行准确对应,此举可以在Java的应用过程中实现对Objective-C静态库中方法的调用。针对WXMediaMessage中所存在的Objective-C属性来说,其主要是由@property进行修饰的,但从实际情况来看,Java中并不存在这一关键字[4]。自从Objective-C2.0之后,便能够对相应的设值方法以及取值方法进行自动生成,其统一可以称之为存取方法。运用@property指令在接口部分进行属性的表示,这些属性的命名基本上同实例变量相一致。以WXMediaMessage类中的title属性为例,若是对@property指令进行应用,便可以选择性的声明相应的实例变量,具体可以按照编译器中的提示进行操作。若是采用@property对一个名为title的属性进行声明,那么编译器便能够对实例变量_title、取方法title以及存方法setTitle进行自动生成,充分了解@property属性的相关特点之后能够发现针对Java代码,其本质上指的是,实现由Objective-C的一行属性声明向一个取方法以及一个存方法的转变。因为上述方法在编译器进行编译的过程中将会自动生成,所以在Java中应当采用手段的方式将这两个方法加入其中,这样一来便能够有效保障Java代码的正确性,进而更加科学合理地实现对于Objective-C属性的操纵。例如可以采用下述方式,表示title属性:@Property(selector=”title”)publicnativeStringtitle();@Property(selector=”setTitle”:)publicnativevoidsetTitle(Stringtitle);

3结论

灵活应用Java程序设计语言,能够有效提升软件开发的质量和效果,对于未来我国各个行业的现代化都起到了积极的促进作用。因此,相关人员应当加强对其的重视,进而为软件开发实效性的提升奠定坚实的基础。

参考文献

[1]官亚芬.计算机软件开发中JAVA编程语言及其实际应用[J].中国新通信,2020,22(4):98-99.

[2]邹青松.计算机软件Java编程特点及其技术运用[J].黑龙江科学,2020,11(6):62-63.

[3]孙玲玲.JAVA编程语言在计算机软件开发中的应用研究[J].百科论坛电子杂志,2020(8):59-60.

[4]任浩然,刘丹.计算机软件开发中Java编程语言的运用研究[J].信息记录材料,2021,22(4):134-135.

作者:朱姝 单位:江苏联合职业技术学院徐州经贸分院