使用Java 編寫(xiě)手機(jī)應(yīng)用程序--Motorola iDEN篇(2) (轉(zhuǎn))
發(fā)表時(shí)間:2024-06-09 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]█對(duì)MIDlet進(jìn)行調(diào)試 編寫(xiě)PalmOS上的Spotlet時(shí),我們可以利用System.out.println()函式幫我們印出一些訊息以幫助調(diào)試,那幺在手機(jī)上的MIDlet呢? 原則上,我們還是可以利用System.out.println()函式做一些輸出。當(dāng)模擬器執(zhí)行時(shí),就會(huì)在命令列上輸出一...
█對(duì)MIDlet進(jìn)行調(diào)試
編寫(xiě)PalmOS上的Spotlet時(shí),我們可以利用System.out.println()函式幫我們印出一些訊息以幫助調(diào)試,那幺在手機(jī)上的MIDlet呢? 原則上,我們還是可以利用System.out.println()函式做一些輸出。當(dāng)模擬器執(zhí)行時(shí),就會(huì)在命令列上輸出一些訊息。
另外,在PalmOS上,有KVMutil.prc可以幫助我們紀(jì)錄程序所輸出的訊息。那手機(jī)上呢? 因?yàn)闆](méi)有實(shí)際的機(jī)器可以測(cè)試,因此這個(gè)問(wèn)題到現(xiàn)在還不得而知,相信Motorola到時(shí)候會(huì)有完善的解決方案吧!
在Motorola J2ME SDK內(nèi)附的說(shuō)明文件之中,概略地提到了調(diào)試的問(wèn)題,里頭提到,往后如果我們要進(jìn)行機(jī)上調(diào)試(on-device debugging)的話,必須要滿足幾個(gè)條件:
- 機(jī)器本身要具備調(diào)試相關(guān)功能,并與KDWP(Kvm Debug Wire Protocol)兼容。因?yàn)檎{(diào)試時(shí),調(diào)試工具需要利用KDWP和機(jī)器上交談以取得調(diào)試信息。
- 制造廠商本身要提供下載MIDlet到手機(jī)上以進(jìn)行調(diào)試的方法。
- 提供對(duì)MIDlet調(diào)試的工具,必須支持手機(jī)在利用KDWP調(diào)試時(shí)所使用的傳輸接口(例如串行口或UDP)。
嗯,看起來(lái)能夠進(jìn)行調(diào)試,MIDlet程序的編寫(xiě)應(yīng)該是很方便的事情了。
█Motorola J2ME SDK對(duì)中文的支持
相信看過(guò)RUN!PC 11月號(hào)的文章「利用Java 編寫(xiě)PalmOS應(yīng)用程序基礎(chǔ)篇」的讀者,在編寫(xiě)PalmOS上的Spotlet時(shí)一定會(huì)遇到中文無(wú)法正常顯示的問(wèn)題。中文的問(wèn)題分成兩個(gè)部分,一個(gè)是在用戶接口上的中文問(wèn)題,一個(gè)是在命令列輸出(利用System.out.println()函式所做的輸出)上的中文問(wèn)題,請(qǐng)大家做個(gè)小實(shí)驗(yàn),將前面我們所編寫(xiě)的程序改如下:
HelloMIDlet.javaimport javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class HelloMIDlet extends MIDlet
{
private Display firstDisplay ;
private Form firstForm ;
HelloMIDlet()
{
firstDisplay = Display.getDisplay(this) ;
firstForm = new Form("哈羅!MIDlet") ;
StringItem firstStrItem = new StringItem("哈羅","米德列特") ;
firstForm.append(firstStrItem) ;
System.out.println("MIDlet啟動(dòng)") ;
}
protected void startApp() throws MIDletStateChangeException
{
firstDisplay.setCurrent(firstForm) ;
}
protected void pauseApp()
{
}
protected void destroyApp(boolean unconditional)
throws MIDletStateChangeException
{
}
}
將本MIDlet編譯并經(jīng)過(guò)預(yù)身審核之后,我們開(kāi)啟模擬器來(lái)執(zhí)行此MIDlet,底下為執(zhí)行結(jié)果: