midlet_如何在J2ME中创建MIDlet
midlet
總覽
Java移動應(yīng)用程序稱為J2ME。 通常,當(dāng)我們在移動技術(shù)領(lǐng)域工作時,我們必須考慮J2ME應(yīng)用程序。 通過這種方式,我們可以開發(fā)我們的移動應(yīng)用程序,也可以通過jad或jar文件將其安裝在我們的設(shè)備中。 近年來,手機(jī)開發(fā)中最大的增強(qiáng)是JavahostedMIDlet的引入。 MIDlet在Java虛擬機(jī)上執(zhí)行,該Java虛擬機(jī)對底層硬件進(jìn)行了抽象,并使開發(fā)人員可以創(chuàng)建在通常支持Java運(yùn)行時系統(tǒng)的各種設(shè)備上運(yùn)行的演示文稿。 不方便地,這種便利是以限制訪問設(shè)備硬件為代價的。 現(xiàn)在,在移動開發(fā)中,第三方應(yīng)用程序通常會獲得與電話制造商編寫的本機(jī)應(yīng)用程序不同的硬件訪問和執(zhí)行權(quán),這被認(rèn)為是正常的。 Java MIDlet的引入和實(shí)現(xiàn)擴(kuò)大了開發(fā)人員的受眾。 但是缺乏底層硬件訪問和沙箱執(zhí)行,意味著大多數(shù)移動應(yīng)用程序?qū)τ谠O(shè)計(jì)用于在較小屏幕上呈現(xiàn)的桌面程序或網(wǎng)站都是常規(guī)的。
在本文中,將詳細(xì)討論MIDlet的創(chuàng)建。
介紹
J2ME縮寫為Java 2,微型版。 它是被困在處理能力和存儲能力有限以及交替或相當(dāng)?shù)蛶挼木W(wǎng)絡(luò)連接系統(tǒng)的設(shè)備上的Java的功能版本。 這些系統(tǒng)還包括我們?nèi)粘I钪型ǔJ褂玫氖謾C(jī),尋呼機(jī),無線設(shè)備。 MIDlet是移動電話系統(tǒng)小程序的一部分。 這里的小程序可以在受保護(hù)的沙箱中運(yùn)行。 該系統(tǒng)在該過程中非常受限制。 當(dāng)前在大多數(shù)支持Java的手機(jī)上都可以找到MIDP()1.0,它相當(dāng)不錯。 例如,KVM不允許我們處理浮點(diǎn)數(shù),并且為MIDP 1.0編寫的MIDlet在沒有電話制造商專有API(應(yīng)用編程系統(tǒng))的情況下無法訪問沙箱之外的任何內(nèi)容。 現(xiàn)在,我們可以夢想成真地開發(fā)帶有鉤子的最終MIDlet,并將其插入到backburner的電話操作系統(tǒng)的每個部分中。 基本上,當(dāng)我們想確切地了解MIDP 1.0的局限性時,我們應(yīng)該在這里閱讀規(guī)格。 如果我們這樣做,那么它可能想簽出MIDP 2.0版本,并且它的等級更高。 目前,我們將要編寫第一個MIDlet –功能齊全的“ Hello MIDlet”應(yīng)用程序。
MIDlet生命周期
每個系統(tǒng)都應(yīng)該有生命周期,通過這個生命周期,我們可以逐步了解系統(tǒng)的過程。 在這里,我們簡短地討論MIDlet生命周期移動設(shè)備,例如模擬器或真實(shí)設(shè)備,它們可以使用稱為應(yīng)用程序管理軟件(簡稱為AMS)的自己的軟件技術(shù)過程與MIDlet進(jìn)行交互。 AMS負(fù)責(zé)初始化,啟動,暫停,恢復(fù)和銷毀MIDlet。 AMS可能負(fù)責(zé)安裝和刪除MIDlet。 為了簡化此生命周期管理,MIDlet可以處于三種狀態(tài)之一,該狀態(tài)通過每個MIDlet擴(kuò)展和覆蓋的MIDlet類方法進(jìn)行控制。 這些狀態(tài)分為活動,暫停和破壞等不同部分。
虛擬機(jī)
通常,這些類型的編程模型虛擬機(jī)或虛擬設(shè)備在軟件開發(fā)部分中也起著至關(guān)重要的作用。 現(xiàn)在,由于更改了內(nèi)存并顯示了功能,因此CLDC(J2ME連接的受限設(shè)備配置)和CDC(J2ME連接的設(shè)備配置)需要使用自己的虛擬機(jī)。 CLDC虛擬機(jī)小于CDC所需的虛擬機(jī),并且支持較少的功能。 從這種意義上講,CLDC的虛擬機(jī)稱為Kilo虛擬機(jī)(KVM),而CDC的虛擬機(jī)稱為CVM。
J2ME Con??nected,受限設(shè)備配置:
- 它用于為手機(jī),尋呼機(jī)和無線設(shè)備指定Java環(huán)境,也支持其他設(shè)備。
- CLDC設(shè)備通常是無線的,這意味著通過CLDC支持移動系統(tǒng)
- 內(nèi)存需求在該特定設(shè)備中非常重要,因此Java可以使用160 – 512k的內(nèi)存。
- 節(jié)能系統(tǒng)的電源或電池供電能力有限。
- 溝通過程在這里非常重要。 網(wǎng)絡(luò)連接為無線,間歇性,低帶寬(9600bps或更小)。
J2ME連接的設(shè)備配置:
- 通常,它描述了用于數(shù)字電視機(jī)頂盒,移動,高端無線設(shè)備和汽車遙測系統(tǒng)的Java環(huán)境。
- 該設(shè)備由32位處理器支持的系統(tǒng)供電。
- Java平臺可使用2MB或更多的內(nèi)存。
- 經(jīng)常是無線,不連續(xù),低帶寬(9600bps或更小)的網(wǎng)絡(luò)連接
在Net Beans中創(chuàng)建我們自己的MIDlet的過程
通常,當(dāng)我們在Net Beans字段中工作時,由于這個原因,我們必須安裝Java SE Development Kit(JDK),因此必須首先下載并安裝最新的32位版本的Java SE Development Kit(JDK)。 需要JDK來編譯Java類以執(zhí)行代碼。 《 Net Beans安裝指南》要求在安裝過程中用來瀏覽到本地驅(qū)動器上的JDK位置。
e請記住這一點(diǎn),當(dāng)我們安裝Net Beans時,我們選擇自定義安裝并清除“功能隨需應(yīng)變”選項(xiàng)。 然后下載并安裝支持Java ME(微型版)的軟件開發(fā)套件(SDK)。 SDK提供了IDE涉及的Java ME類庫,用于為特定設(shè)備平臺構(gòu)建MIDlet。
實(shí)際上,當(dāng)我們?yōu)镾eries 40設(shè)備生成MIDlet時,我們使用的是適用于Java的諾基亞SDK(軟件開發(fā)工具包)。 現(xiàn)在,如果我們要為40系列,第6版或更早的40系列設(shè)備創(chuàng)建MIDlet,請使用相應(yīng)的40系列SDK。
e請記住,SDK已與IDE正確集成,并且將SDK安裝在與IDE部分相同的邏輯驅(qū)動器上。
配置Net Bean的過程
安裝所需的軟件后,將Net Beans與安裝的SDK集成在一起。
在這里,我們將逐步討論創(chuàng)建項(xiàng)目的過程:
圖1:選擇Java平臺類型
圖2:添加Series 40軟件開發(fā)套件
要創(chuàng)建HelloBCEI MIDlet:
在此項(xiàng)目名稱字段中,輸入“ HelloBCEI”。
圖3:在Net Beans中創(chuàng)建第一個MIDlet
對于那些40系列設(shè)備,我們在這里選擇諾基亞Java軟件開發(fā)套件。
圖4:為MIDlet選擇設(shè)備平臺
現(xiàn)在,我通過以下方式創(chuàng)建程序。
HelloBCEI MIDlet類是在默認(rèn)程序包中創(chuàng)建的。 在這里,我們記下在程序中生成代碼的代碼。
清單1:顯示MIDlet類
import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.midlet.MIDlet;public class HelloMIDlet extends MIDlet { public HelloWorldMIDlet() {} // Sets the MIDlet’s current Display to a HelloScreen object. public void startApp() { Displayable current = Display.getDisplay(this).getCurrent(); if (current == null) { HelloScreen helloScreen = new HelloScreen(this, “Hello, BCEI!”); Display.getDisplay(this).setCurrent(helloScreen); } } public void pauseApp() {} public void destroyApp(boolean unconditional) {} }要創(chuàng)建HelloBCEIScreen類:
清單2:在默認(rèn)包中創(chuàng)建的顯示類
import javax.microedition.lcdui.*;class HelloBCEIScreen extends Form implements CommandListener { private final HelloBCEIMIDlet midlet; private final Command exitCommand; //Exit command for closing the MIDlet in the device UI.public HelloBCEIScreen(HelloWorldMIDlet midlet, String string) { super(“”); StringItem helloText = new StringItem(“”, string); super.append(helloText); this.midlet = midlet; exitCommand = new Command(“Exit”, Command.EXIT, 1); addCommand(exitCommand); setCommandListener(this); }public void commandAction(Command command, Displayable displayable) { if (command == exitCommand) { midlet.notifyDestroyed(); } } }選擇File-> Save All保存項(xiàng)目。
在“項(xiàng)目”窗格中,右鍵單擊HelloBCEI項(xiàng)目,然后選擇“ 部署選項(xiàng)” 。 選擇部署選項(xiàng)后,程序即可安裝在設(shè)備中。
NetBeans構(gòu)建MIDlet,并創(chuàng)建用于將MIDlet部署到設(shè)備的JAR和JAD文件。 您也可以在dist文件夾下的“文件”窗格中找到生成的文件。
圖5:在“項(xiàng)目”窗格中查看的HelloBCEI項(xiàng)目
調(diào)試MIDlet
在調(diào)試MIDlet之前,我們必須具有MIDP可執(zhí)行文件的版本以及在其類文件中具有調(diào)試密碼的MIDlet。 要查看我們是否具有可接受的midp可執(zhí)行文件版本,并在-help選項(xiàng)的中間運(yùn)行midp命令。 如果生成的可執(zhí)行文件具有Java調(diào)試功能,那么我們將看到下面列出的-debugger選項(xiàng)。 例如:
C:\midp2.0fcs> bin\midp -helpUsage: midp [<options>]Run the Graphical MIDlet Suite Manager….or midp [<options>] -debugger …我們正在使用的midp可執(zhí)行文件版本不支持Java編程語言調(diào)試。 要生成包含調(diào)試符號的MIDlet版本,我們對javac(Java的編譯器)命令使用–g選項(xiàng)。
要調(diào)試MIDlet,應(yīng)遵循以下步驟:
1.首先打開命令提示符或終端窗口。
2.將當(dāng)前目錄更改為midpInstallDir。
為了說明起見,如果目錄中安裝了MIDP Reference成就
c:\midp2.0fcs we can run the command:c:\> cd midp2.0fcs3.在調(diào)試模式下啟動MIDP Reference完成并可執(zhí)行文件。
在-debugger和-port開關(guān)中間使用midp命令。 端口號應(yīng)為2800。此處,KVM調(diào)試代理期望調(diào)試器在其上運(yùn)行的端口號。
參考實(shí)施可執(zhí)行文件。 例如:
c:\midp2.0fcs\> bin\midp -debugger -port 2800 -classpath classes4.現(xiàn)在啟動KVM調(diào)試代理。
查看KVM文檔以獲取有關(guān)正確語法,參數(shù)和選項(xiàng)的信息。 對于標(biāo)本,以下命令使KVM調(diào)試代理連接到我們在上一步中啟動的midp可執(zhí)行文件,然后在端口5000處偵聽與Java?平臺調(diào)試器體系結(jié)構(gòu)過程兼容的軟件:
c:\midp2.0fcs\> java -jarc:/kvm/bin/kdp.jar kdp.KVMDebugProxy –l 5000 -p -r localhost 2800 -cp包含MIDletClassFiles的路徑
5.從任何與Java平臺調(diào)試器體系結(jié)構(gòu)兼容的調(diào)試器連接到KVM調(diào)試代理。 兼容的調(diào)試器包括jdb,Sun?ONE Studio(以前稱為Java的Forte?),JBuilder,Code Warrior,VisualCafé等。
部署項(xiàng)目
現(xiàn)在,我們將討論部署過程。 我們已經(jīng)可以直接在移動設(shè)備上部署MIDlet并運(yùn)行它。 基本上有兩種方法可以做到這一點(diǎn)。 首先,自然是通過我們的計(jì)算機(jī)和手機(jī)之間的網(wǎng)絡(luò)連接。 此過程可以通過USB(通用串行總線)電纜或藍(lán)牙無線連接進(jìn)行,具體取決于我們的設(shè)備。 大多數(shù)支持Java的設(shè)備將允許我們通過此連接安裝J2ME應(yīng)用程序。
其次,這一章更具啟發(fā)性,因?yàn)樗ㄟ^互聯(lián)網(wǎng)系統(tǒng)將我們的MIDlet開放給外界。 通常,這意味著我們的設(shè)備應(yīng)該能夠使用其內(nèi)部瀏覽器連接到Internet。
<HTML> Click <a href=”DateTimeAppliction.jad”>here</a> to download DateTimeApplication MIDlet! </HTML>處理以在我們自己的設(shè)備中獲取代碼:
當(dāng)我們創(chuàng)建了華麗的小MIDlet并確保一切都能在仿真器中順利進(jìn)行之后,下一步就是使它在實(shí)際設(shè)備上運(yùn)行。
空中(OTA)設(shè)置:
OTA配置,允許用戶使用手機(jī)(移動設(shè)備)中內(nèi)置的WAP瀏覽器無線下載我們的應(yīng)用程序。 首先,我們需要看一下使用J2ME Wireless Toolkit打包MIDlet時生成的Java Application Descriptor(JAD)文件。 當(dāng)我們通過Wireless Toolkit編輯JAD文件時,我們必須打開我們的項(xiàng)目,然后單擊Settings選項(xiàng)。 這將打開一個包含多個選項(xiàng)卡的新窗口-API選擇,必需,可選,用戶定義,MIDlet,推送注冊表和權(quán)限。
所有這些類型的應(yīng)用程序在我們的工作領(lǐng)域中都至關(guān)重要。 下表給出了簡要的想法。
結(jié)論:
在上面的討論中,我們了解了Java Micro Edition。 我們知道該版本適用于移動軟件開發(fā)平臺。 因?yàn)楫?dāng)我們研究基于移動軟件的技術(shù)時,J2ME非常可靠并且對我們有幫助。 如果我們作為移動軟件開發(fā)人員從事該特定領(lǐng)域的工作,那么Java平臺是高度安全的。
希望您對MIDlet的創(chuàng)建及其實(shí)際實(shí)現(xiàn)有所了解。 繼續(xù)在TechAlpine看!
翻譯自: https://www.javacodegeeks.com/2014/06/how-to-create-midlet-in-j2me.html
midlet
總結(jié)
以上是生活随笔為你收集整理的midlet_如何在J2ME中创建MIDlet的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cassandra中的数据建模
- 下一篇: 穿越JUnit流