前言:想要寫出一篇引人入勝的文章?我們特意為您整理了Java程序設(shè)計語言在軟件開發(fā)中運(yùn)用范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:本文從提升編程的效率、應(yīng)用于計算機(jī)無線和移動工作中以及應(yīng)用于企業(yè)與行業(yè)的發(fā)展中幾方面內(nèi)容著手,闡述了java程序設(shè)計語言在軟件開發(fā)中的應(yīng)用方式,并以iOS手機(jī)軟件為例對Java程序設(shè)計語言在軟件開發(fā)中的實踐運(yùn)用進(jìn)行了詳細(xì)分析,旨在為相關(guān)人員提供參考。
關(guān)鍵詞:Java程序設(shè)計語言;軟件開發(fā);iOS手機(jī)軟件
0引言
Java程序設(shè)計語言在軟件開發(fā)中進(jìn)行應(yīng)用的過程中有著較高的應(yīng)用價值,能夠同當(dāng)前時代背景下更多的應(yīng)用需求相適應(yīng),但從目前來看,其在應(yīng)用過程中仍面臨一定的不利因素,基于此,有必要對其展開更加深層次的探索。
1Java程序設(shè)計語言在軟件開發(fā)中的應(yīng)用方式
1.1提升編程的效率
Java程序的應(yīng)用最主要的便是在編程效率的提升方面,以往在編程方面存在著來自諸多方面的限制,與此同時,其本身存在著較高的專業(yè)程度,但從目前來看,編程不再像從前一樣面臨較高的難度,與此同時,其在準(zhǔn)入門檻方面也有所降低,強(qiáng)化對于Java程序設(shè)計語言的應(yīng)用能夠在極大程度上實現(xiàn)編程效率的提升,這樣一來便能夠有效發(fā)揮出其對于軟件開發(fā)技術(shù)提高的推動作用。
1.2應(yīng)用于計算機(jī)無線和移動工作中
在當(dāng)前大數(shù)據(jù)技術(shù)飛速發(fā)展的時代背景下,人們開始將注意力和關(guān)注點放在無線和移動工作上,移動互聯(lián)網(wǎng)運(yùn)行的速度對于企業(yè)未來的發(fā)展情況有著直接影響,與此同時,還同編程與程序開發(fā)的速度息息相關(guān)。信息時代中人們在互聯(lián)的需求方面存在著顯著的提升,不管是娛樂還是購物都離不開互聯(lián)網(wǎng)的支持,而企業(yè)的運(yùn)行及發(fā)展效率同樣需要網(wǎng)絡(luò)技術(shù)以及通訊技術(shù)等的支持,唯有保障網(wǎng)絡(luò)整體的發(fā)展效率,才能夠為企業(yè)未來的發(fā)展提供更加穩(wěn)定的支持。Java程序設(shè)計語言的應(yīng)用能夠在極大程度上促進(jìn)計算及無線和移動工作的發(fā)展,Java編程能夠在原有的基礎(chǔ)上對其運(yùn)行過程中進(jìn)行不斷的簡化,進(jìn)而實現(xiàn)網(wǎng)絡(luò)運(yùn)行速度的優(yōu)化提升,這不僅能夠切實提升程序開發(fā)的穩(wěn)定性和實效性,還能夠為企業(yè)的發(fā)展創(chuàng)造更加良好的條件[1]。
1.3應(yīng)用于企業(yè)與行業(yè)的發(fā)展中
Java程序設(shè)計語言在部分行業(yè)和企業(yè)發(fā)展的過程中有著較為廣泛的應(yīng)用,并在實踐中呈現(xiàn)出了較高的應(yīng)用價值,以IBM企業(yè)為例,其便通過Java程序設(shè)計語言的應(yīng)用,構(gòu)建起了IBM企業(yè)開發(fā)的軟件和能夠與之相適應(yīng)的服務(wù)器,進(jìn)而獲得了更加全面和深層次的發(fā)展。除此以外,Java在電子業(yè)或者是經(jīng)濟(jì)金融業(yè)等諸多企業(yè)中也有著一定的應(yīng)用,當(dāng)前已經(jīng)有諸多高等教育學(xué)校都開始設(shè)立了專門針對Java程序語言教學(xué)的課程,并培養(yǎng)了諸多專門的人才,在極大程度上轉(zhuǎn)變和改善了學(xué)生的思維方式。在未來我國的經(jīng)濟(jì)發(fā)展中,Java程序設(shè)計語言的應(yīng)用范圍將會得到進(jìn)一步擴(kuò)展,其技術(shù)也會持續(xù)更新升級,切實發(fā)揮出其自身的重要作用。
2Java程序設(shè)計語言在軟件開發(fā)中的運(yùn)用——以iOS手機(jī)軟件為例
2.1應(yīng)用思路
通常情況下來說,Java語言會應(yīng)用在對于Android手機(jī)軟件的開發(fā)上,而iOS則大多會采用c++或者是Objective-C語言進(jìn)行開發(fā)。所以當(dāng)在對一款移動端應(yīng)用進(jìn)行制作的時候需要同兩個平臺相適應(yīng),便要對兩個不同的開發(fā)語言進(jìn)行應(yīng)用,在各自平臺上分別將相同的邏輯開發(fā)一次。但此舉往往涉及到對于大量人力和財力的浪費,特別是在時間方面的花費,對于移動互聯(lián)網(wǎng)市場來說,時間是至關(guān)重要的影響因素,所以亟待采用適當(dāng)?shù)姆椒▉斫鉀Q這一問題。在綜合考慮公司自身開發(fā)人員實際特點以及一個跨平臺開發(fā)引擎實際情況的基礎(chǔ)上,選用了RoboVM編譯器以及l(fā)ibGDX游戲引擎。開發(fā)者可以基于Java語言對應(yīng)用的邏輯部分進(jìn)行開發(fā),接下來再結(jié)合iOS本身的特性,對入口程度進(jìn)行編寫,這樣一來便能夠充分達(dá)到跨平臺的效果。此舉可以在極大程度上緩解普遍存在的重復(fù)勞動的問題,進(jìn)而充分實現(xiàn)對于時間、財力以及人力成本的有效節(jié)約。與此同時,因為程序的邏輯部分為一套代碼,所以能夠為版本后續(xù)的開發(fā)以及維護(hù)工作的開展創(chuàng)造良好的條件。RoboVM編譯器能夠在原有的基礎(chǔ)上對Java字節(jié)碼進(jìn)行翻譯,使其以ARM或者是x86平臺上原生代碼的形式呈現(xiàn),應(yīng)用能夠CPU上直接進(jìn)行運(yùn)行,不需要對其他虛擬機(jī)或者是解釋器進(jìn)行應(yīng)用。RoboVM中涉及到一個Java到Objective-C的橋,可以同其他Java對象一樣進(jìn)行使用Objective-C的對象,絕大部分iOS開發(fā)的UIKit已經(jīng)支持,在未來不斷發(fā)展的過程中將會對更多的框架提供支持。
2.2需求分析
本次任務(wù)的主要目標(biāo)便是將某款采用Java開發(fā)的游戲向iOS平臺上進(jìn)行移植,并使其能夠在蘋果的AppStore上架。該游戲主要是采用libGDX引擎對其進(jìn)行開發(fā),并將RoboVM作為橋,使其能夠直接在iOS平臺上進(jìn)行編譯,但除此以外,從本質(zhì)上來看該應(yīng)用有著較強(qiáng)的商業(yè)化特點,所以其不僅僅要能夠成功實現(xiàn)其最基本的游戲邏輯的移植,同時還應(yīng)當(dāng)在其中額外引入商業(yè)化的SDK。具體包括應(yīng)用內(nèi)計費以及微信分享功能等等,本次的主要任務(wù)便是接入上述幾種商業(yè)化功能[2]。
2.3系統(tǒng)設(shè)計
2.3.1libGDX游戲的生命周期。對于游戲開發(fā)來說,相關(guān)設(shè)計者應(yīng)當(dāng)能夠?qū)τ螒虻纳芷谶M(jìn)行精確掌控,在libGDX基礎(chǔ)上所進(jìn)行的游戲開發(fā)中,ApplicationListener主要是對窗口進(jìn)行創(chuàng)建和顯示,還可以將其看作為一個簡單的顯示屏。在對libGDX項目進(jìn)行創(chuàng)建的過程中,最初要創(chuàng)建便是ApplicationListener接口的對象,libGDX官方給出了相應(yīng)的生命周期,如圖1所示。在正式啟動程序的時候可以對resize()方法以及create()方法進(jìn)行調(diào)用進(jìn)行初始化,而在運(yùn)行的過程中則需要調(diào)動render()方法對游戲邏輯進(jìn)行顯示和運(yùn)行。當(dāng)暫停和恢復(fù)的時候,則需要分別對resume()方法和pause()進(jìn)行應(yīng)用,在正式關(guān)閉程序之前應(yīng)當(dāng)對dispose()方法進(jìn)行調(diào)用,以達(dá)到銷毀對象的效果。從上述內(nèi)容可以知道,libGDX自然地以事件為驅(qū)動,這一點基本上同JavaScript與Android相似,其沒有較為明顯和突出的主循環(huán),但是ApplicationListener.render()方法仍然能夠作為主循環(huán)的主體存在。2.3.2在Xcode中接入應(yīng)用內(nèi)計費功能。應(yīng)用內(nèi)計費功能需要將StoreKit.framework加入到Xcode來實現(xiàn)。在現(xiàn)有的基礎(chǔ)上對一個類進(jìn)行創(chuàng)建,使其能夠滿足用戶在應(yīng)用內(nèi)進(jìn)行購買的需求,在類中要對SKPaymentTransactionObserver和SKProductsRequestDelegate這兩個協(xié)議接口進(jìn)行繼承。其中SKPaymentTransactionObserver這個接口能夠?qū)崿F(xiàn)對于交易整體過程的全面監(jiān)測,就算是在交易過程中因故從應(yīng)用中推測出仍然能夠繼續(xù)進(jìn)行交易,但是需要回到應(yīng)用頁面之后才能夠完成最終的交易,類初始化使用如下:假設(shè)已經(jīng)完成了應(yīng)用中所要購買的類的編寫工作,接下來便要進(jìn)行購買。首先便是請求商品信息(RequestProducts)。_productRequest=[[SKProductsRequestalloc]initWithProductIdentifiers:_productIdentifiers];_productRequest.delegate=self;[_productRequeststart];上述便是一個完整的請求,針對productsIdentifiers來說,其是一個Set,具體指的是在這里進(jìn)行一個Set的創(chuàng)建,并在其中加入ProductIdentifer即相關(guān)商品的具體信息。請求回調(diào)方法的結(jié)構(gòu)具體如下所示:-(void)productsRequest:(SKProductsRequest*)requestdidReceiveResponse:(SKProductsResponse*)response{NSArray*skProducts=response.products;//process....}-(void)request:(SKRequest*)requestdidFailWithError:(NSError*)error{//process....}在請求成功之后便能夠?qū)ο鄳?yīng)的商品信息進(jìn)行獲取,其主要是一個NSArray的對象,其中涉及到SKProduct對象的相關(guān)產(chǎn)品信息,具體包括產(chǎn)品的價格以及名稱的等等,從實際情況來看,上述內(nèi)容基本上僅會在顯示信息的過程中有一定的應(yīng)用價值,在實際進(jìn)行購買的過程中并不需要針對上述參數(shù)采取相應(yīng)的操作措施,只需要對SKProduct進(jìn)行應(yīng)用便可。在運(yùn)用SKProduct請求購買之后,應(yīng)用便能夠同AppStore之間相連接,從交易回調(diào)的實際情況來看,其主要涉及到三種狀態(tài)類型,分別為交易成功、交易失敗以及交易恢復(fù)。其中,在交易恢復(fù)這一交易狀態(tài)方面,其主要指的是,若是存在部分用戶運(yùn)用一個賬號在iPhone上購買產(chǎn)品,然后又于iPad上對該應(yīng)用進(jìn)行下載,那么該用戶便不再需要對這一產(chǎn)品進(jìn)行重復(fù)支付購買便可以在iPad進(jìn)行應(yīng)用。具體可以利用AppStore以及Restore對這個賬號的購買記錄進(jìn)行檢測,若是檢測過程中發(fā)現(xiàn)其存在購買記錄,那么用戶便不需要對其進(jìn)行重復(fù)購買,直接restoreTransaction[3]。通常情況下來說針對一次性計費點會采用NSUserDefaults進(jìn)行記錄,其中SKPaymentQueue的defaultQueue對象則產(chǎn)生了finishTransaction的方法,在對該方法進(jìn)行調(diào)用之后,TransactionObserver便不對這個交易進(jìn)行監(jiān)測了。其他狀態(tài)的處理同交易恢復(fù)這一狀態(tài)的處理基本上類似,具體內(nèi)容可以從官方所的開發(fā)文檔中獲取,此處不再過多解釋。2.3.3微信分享功能設(shè)計。微信分享功能設(shè)計是該項目中至關(guān)重要的組成部分,當(dāng)應(yīng)用在微信開發(fā)者平臺登記完畢之后,應(yīng)當(dāng)對微信的開發(fā)者SDK進(jìn)行下載,微信SDK文件中主要包含三個文件,分別包括libWeChatSDK.a、WXApi.h、WXApiObject.h。微信SDK在iOS方面僅提供了支持Objective-C的版本,若想讓它能夠支持Java語言,應(yīng)當(dāng)在現(xiàn)有的基礎(chǔ)上轉(zhuǎn)換代碼,但需要實現(xiàn)對Objective-C的項目的各方面實際情況進(jìn)行了解,并明確如何實現(xiàn)其同微信平臺之間的有效對接。對Java類接入微信SDK進(jìn)行創(chuàng)建,全面了解微信分享功能的具體內(nèi)容,然后設(shè)計者則需要用Java對這些Objective-C類進(jìn)行應(yīng)用。微信分享功能類圖設(shè)計如圖2所示。Objective-C同Java代碼之間存在著特定的內(nèi)在聯(lián)系,當(dāng)處在要調(diào)用一個方法的情況下,應(yīng)當(dāng)先對Java的方法進(jìn)行調(diào)用,該Java方法被聲明為native方法,與此同時其需要采用@Method對其進(jìn)行修飾,這樣便能夠同Objective-C靜態(tài)庫中所存在的相關(guān)方法進(jìn)行準(zhǔn)確對應(yīng),此舉可以在Java的應(yīng)用過程中實現(xiàn)對Objective-C靜態(tài)庫中方法的調(diào)用。針對WXMediaMessage中所存在的Objective-C屬性來說,其主要是由@property進(jìn)行修飾的,但從實際情況來看,Java中并不存在這一關(guān)鍵字[4]。自從Objective-C2.0之后,便能夠?qū)ο鄳?yīng)的設(shè)值方法以及取值方法進(jìn)行自動生成,其統(tǒng)一可以稱之為存取方法。運(yùn)用@property指令在接口部分進(jìn)行屬性的表示,這些屬性的命名基本上同實例變量相一致。以WXMediaMessage類中的title屬性為例,若是對@property指令進(jìn)行應(yīng)用,便可以選擇性的聲明相應(yīng)的實例變量,具體可以按照編譯器中的提示進(jìn)行操作。若是采用@property對一個名為title的屬性進(jìn)行聲明,那么編譯器便能夠?qū)嵗兞縚title、取方法title以及存方法setTitle進(jìn)行自動生成,充分了解@property屬性的相關(guān)特點之后能夠發(fā)現(xiàn)針對Java代碼,其本質(zhì)上指的是,實現(xiàn)由Objective-C的一行屬性聲明向一個取方法以及一個存方法的轉(zhuǎn)變。因為上述方法在編譯器進(jìn)行編譯的過程中將會自動生成,所以在Java中應(yīng)當(dāng)采用手段的方式將這兩個方法加入其中,這樣一來便能夠有效保障Java代碼的正確性,進(jìn)而更加科學(xué)合理地實現(xiàn)對于Objective-C屬性的操縱。例如可以采用下述方式,表示title屬性:@Property(selector=”title”)publicnativeStringtitle();@Property(selector=”setTitle”:)publicnativevoidsetTitle(Stringtitle);
3結(jié)論
靈活應(yīng)用Java程序設(shè)計語言,能夠有效提升軟件開發(fā)的質(zhì)量和效果,對于未來我國各個行業(yè)的現(xiàn)代化都起到了積極的促進(jìn)作用。因此,相關(guān)人員應(yīng)當(dāng)加強(qiáng)對其的重視,進(jìn)而為軟件開發(fā)實效性的提升奠定堅實的基礎(chǔ)。
參考文獻(xiàn)
[1]官亞芬.計算機(jī)軟件開發(fā)中JAVA編程語言及其實際應(yīng)用[J].中國新通信,2020,22(4):98-99.
[2]鄒青松.計算機(jī)軟件Java編程特點及其技術(shù)運(yùn)用[J].黑龍江科學(xué),2020,11(6):62-63.
[3]孫玲玲.JAVA編程語言在計算機(jī)軟件開發(fā)中的應(yīng)用研究[J].百科論壇電子雜志,2020(8):59-60.
[4]任浩然,劉丹.計算機(jī)軟件開發(fā)中Java編程語言的運(yùn)用研究[J].信息記錄材料,2021,22(4):134-135.
作者:朱姝 單位:江蘇聯(lián)合職業(yè)技術(shù)學(xué)院徐州經(jīng)貿(mào)分院