人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

運(yùn)用Java 編寫手機(jī)應(yīng)用程序(轉(zhuǎn))

運(yùn)用Java 編寫手機(jī)應(yīng)用程序(轉(zhuǎn))

更新時(shí)間:2022-08-31 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

█前言

本文內(nèi)容的所有操作皆在Windows 200操作系統(tǒng)上經(jīng)過測(cè)試。如果您在不同的平臺(tái)上驗(yàn)證本文內(nèi)容,例如Windows 98或是Windows Me,則我們無法保證會(huì)有相同的結(jié)果。

█簡(jiǎn)介

不知從什幺時(shí)候開始,我們突然感覺到周圍的人各各擁有一只手機(jī)。利用手機(jī)與別人溝通成了我們生活的一部份。北歐某些先進(jìn)國(guó)家的人民可以利用手機(jī)購(gòu)買自動(dòng)售貨機(jī)所出售的商品;他們也可以在從事行動(dòng)商務(wù)(m-commence) 交易時(shí)利用手機(jī)做為一種認(rèn)證工具。在日本,行動(dòng)電話的許多附加功能更是年輕人文化的一部分。即將來臨的3G,無線寬頻的美夢(mèng)帶給了人們對(duì)無線通訊未來的期待。

然后,有些廠商開始行銷它們自己生產(chǎn)的PDA,好象沒有一臺(tái)PDA在手,就不像現(xiàn)代人似的。各式各樣的PDA充斥市面,暢銷的與不暢銷的,讓人眼花撩亂。這時(shí)產(chǎn)生了一個(gè)大問題--要我們同時(shí)攜帶手機(jī)和PDA是一件很麻煩的事情-就算它們都還算輕薄短小。如果可以把手機(jī)和PDA合而為一豈不是更方便嗎? 于是聽到消費(fèi)者心聲的廠商,開始有推出手機(jī)和PDA合而為一的產(chǎn)品,從NOKIA 9000、Motorola A6188(太極),到最近要推出的Ericsson R380、NOKIA 9210,都是手機(jī)與PDA結(jié)合的例子,雖然因?yàn)槭蹆r(jià)的關(guān)系,但是這些產(chǎn)品仍然是許多人夢(mèng)寐以求的高階產(chǎn)品。

盡管有了PDA與手機(jī)結(jié)合的產(chǎn)品出現(xiàn),我們?nèi)匀挥X得有所不足,我想大家一定發(fā)現(xiàn)了,就是應(yīng)用程序的不足,雖然手機(jī)和PDA 結(jié)合了,可是這些產(chǎn)品上的PDA功能看起來似乎是死的。我們可以任意在PalmOS、Windows CE、EPOC等PDA上使用C/C++或是Java編寫這些平臺(tái)上的應(yīng)用程序,但是卻從未有過機(jī)會(huì)將我們寫好的程序下載到這些手機(jī)上執(zhí)行(即使有些手機(jī)的PDA也是使用EPOC,如Ericsson R380)。

相信廠商也聽到我們這些喜歡到處寫程序的工程師的心聲了,所以從2000年年底開始,即將陸陸續(xù)續(xù)有許多支持Java的手機(jī)即將推出,當(dāng)然,這些廠商也提供了在手機(jī)上開發(fā)程序的SDK,我們終于可以在手機(jī)上面寫些小程序自?shī)柿?這是以前等了很久的美夢(mèng)。

手機(jī)平臺(tái)的多樣性與復(fù)雜性,和PDA比較起來可以說是有過之而無不及,于是大家就可以知道 - 哈!又是Java派上用場(chǎng)的時(shí)候了。我們都知道在瀏覽器上執(zhí)行的Java程序叫做Applet,在PalmOS上執(zhí)行的Java程序叫做Spotlet,然而在手機(jī)上執(zhí)行的應(yīng)用程序我們稱做MIDlet,相信對(duì)大家來說都是一個(gè)陌生的名詞,這也就是本篇文章所要介紹的主角。

支持Java的手機(jī)大廠目前已知有NOKIA (預(yù)計(jì)在2001年年初推出一款支持Java的手機(jī)NOKIA 9210)、Motorola(會(huì)先在支持integrated Digital enhanced network(iDen)網(wǎng)絡(luò)的手機(jī)上支持Java,然后再推出支持Java的GSM手機(jī),該公司的手機(jī)大致會(huì)在2002年前全部支持Java)以及NTT DoCoMo(將在明年第二季度左右推出支持Java的手機(jī))。

雖然這些大公司都準(zhǔn)備支持Java,不過在決定編寫本文時(shí),只有Motorola將其SDK開放于網(wǎng)站上供程序開發(fā)者下載測(cè)試,所以本文內(nèi)容都是根據(jù)Motorola J2ME SDK所編寫。又由于這些手機(jī)市面上無法取得,所以我們的程序都是在SDK內(nèi)附的模擬器中執(zhí)行,相信最后這些手機(jī)上市時(shí),我們所編寫的MIDlet應(yīng)該會(huì)很容易并成功地在Motorola的手機(jī)上執(zhí)行才對(duì)。

█如何取得Motorola J2ME SDK

我們要做的第一件事情當(dāng)然還是要先取得SDK羅!
請(qǐng)直接到https://commerce.motorola.com/idenonline/ideveloper/下載Motorola J2ME SDK Drop 7。如果您不是iDEN® Developer的會(huì)員,請(qǐng)先在網(wǎng)絡(luò)上注冊(cè)(免費(fèi))。注冊(cè)成功之后,Motorola會(huì)將密碼寄到您的email信箱之中,然后使用該密碼登入網(wǎng)頁上的My Development Center。進(jìn)入之后選擇網(wǎng)頁上頭的TOOLS & RESOURCES以進(jìn)入可下載的開發(fā)工具的網(wǎng)頁,請(qǐng)選擇Motorola J2ME SDK Components Developer Edition, Drop 7.0下方的下載超連結(jié)以下載SDK,整個(gè)SDK的大小約為3 MB左右。

請(qǐng)注意下載前的Download Page for Motorola J2ME™ SDK安裝說明,里頭會(huì)告訴你安裝密碼,請(qǐng)先行記下。稍后當(dāng)您在您的電腦上安裝Motorola J2ME SDK的時(shí)候,會(huì)詢問您安裝密碼,所以請(qǐng)務(wù)必記下該密碼。

█Motorola J2ME SDK的安裝

安裝需求
根據(jù)官方需求,安裝Motorola J2ME SDK的基本配備為:
Pentium 100 MHz微處理器
64 MB RAM
Windows NT WorkStation 4.0配合Service Pack 3 / Win98
(本文是在Windows 2000 Professional中文版上測(cè)試)
約6 MB的硬盤空間
Java 2 SDK 1.2.2
(本文使用Java 2 SDK 1.3.0_01作測(cè)試)

安裝Motorola J2ME SDK
要安裝新版Motorola J2ME SDK之前,請(qǐng)先確認(rèn)您已經(jīng)將舊版的Motorola J2ME SDK完全刪除。您可以由控制臺(tái)里頭的 「新增/刪除程序」的功能刪除舊版Motorola J2ME SDK。之后再將舊版Motorola J2ME SDK安裝所在路徑清除即可。
解開您從Motorola網(wǎng)站上下載的ZIP文件,您會(huì)看到一個(gè)名為Motorola_SDK.exe的文件,雙擊此文件即可開始安裝動(dòng)作。請(qǐng)注意,在安裝時(shí)系統(tǒng)會(huì)要求您輸入密碼,請(qǐng)輸入之前所紀(jì)錄的安裝密碼即可。

█Motorola J2ME SDK目錄結(jié)構(gòu)

當(dāng)您成功地安裝Motorola J2ME SDK之后,其目錄結(jié)構(gòu)如下圖:





█MIDlet程序結(jié)構(gòu)

在手機(jī)上執(zhí)行的程序我們統(tǒng)稱MIDlet,其程序結(jié)構(gòu)很簡(jiǎn)單,與大家熟悉的Applet結(jié)構(gòu)有異曲同工之妙。
每一個(gè)MIDlet程序都必須繼承自javax.microedition.midlet.MIDlet類別,并實(shí)做三個(gè)函式,它們分別是:

protected void startApp()
protected void pauseApp()
protected void destroyApp(Boolean unconditional)
而一個(gè)MIDlet程序的起始與結(jié)束之流程我們以下圖來表示:




█編寫并編譯MIDlet

請(qǐng)先到您的Motorola J2ME SDK安裝目錄下的demo\midlets目錄底下新建一個(gè)名為HelloMIDlet.java的文件,其內(nèi)容為:

HelloMIDlet.java
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class HelloMIDlet extends MIDlet
{
HelloMIDlet()
{
 }

protected void startApp() throws MIDletStateChangeException
{
}

protected void pauseApp()
{
}

protected void destroyApp(boolean unconditional)
throws MIDletStateChangeException
{
}
}
在demo\midlets目錄之中您會(huì)看到一個(gè)名為compileAll.bat的批處理文件,前面有提到,這個(gè)批處理文件除了可以幫助您編譯所有內(nèi)附范例程序之外,還可以簡(jiǎn)化您自己所編寫的MIDlet之編譯流程。
請(qǐng)?jiān)诿盍幸暣拜斎? compileAll HelloMIDlet.java
如果成功編譯,屏幕上輸出的結(jié)果如下圖所示:



從屏幕上的輸出,您可以發(fā)現(xiàn),要讓MIDlet可以在手機(jī)上執(zhí)行,大體上還是要經(jīng)過兩個(gè)動(dòng)作(與Spotlet相似),分別是編譯(compiling)以及預(yù)先審核(Preverifying)。
有關(guān)預(yù)先審核這個(gè)動(dòng)作,筆者已經(jīng)在RUN!PC 11月號(hào)的文章「利用Java 編寫PalmOS應(yīng)用程序基礎(chǔ)篇」之中有向讀者們提過,如果對(duì)這個(gè)方面有所疑問的朋友,請(qǐng)?jiān)賹⒛腞UN!PC 11月號(hào)翻出來復(fù)習(xí)一下吧!

從這個(gè)簡(jiǎn)短的MIDlet制作流程里頭,相信大家可以發(fā)現(xiàn),比起純粹用Sun的CLDC編寫能在KVM上執(zhí)行的Spotlet要簡(jiǎn)單上許多。原因是compileAll.bat這個(gè)批處理文件幫我們做掉大部分dirty work。
那幺,如果您寫好的程序并非放在demo\midlets目錄之中,是否就無法編譯了? 從compileAll.bat里頭,我們可以發(fā)現(xiàn)它幫我們完成上述兩項(xiàng)工作的指令。如果我們寫好的程序放在demo\midlets目錄以外的地方,您可以執(zhí)行下面的指令,您仍然可以成功地制作MIDlet:
(我們假設(shè)您的Motorola J2ME SDK安裝在D:\MotoSDK目錄之中,并將您自行編寫的HelloMIDlet.java置于d:\jdk1.3.0_01\my目錄之中。同時(shí)我們假設(shè)您在d:\jdk1.3.0_01\my目錄底下執(zhí)行下面指令。)
編譯:

javac -O -bootclasspath d:\MotoSDK\lib HelloMIDlet.java
注意: -bootclasspath指向類函數(shù)庫(kù)的所在位置。

預(yù)先審核:

d:\MotoSDK\bin\preverifier -classpath d:\MotoSDK\lib;. -d . HelloMIDlet
注意:
1 . -classpath指向類函數(shù)庫(kù)的所在位置,也要指向我們所編寫的MIDlet所在的位置。
2 .–d指向您希望預(yù)先編譯類文件產(chǎn)生之后所放置的路徑,如果寫"."表示本目錄,會(huì)覆蓋掉原先未經(jīng)過預(yù)先編譯的類文件。如果您沒有指定,則預(yù)設(shè)值為".\output"目錄。

當(dāng)然,如果您嫌自己手動(dòng)操作很麻煩,您可以將compileAll.bat復(fù)制到其它目錄之中,并更改其編譯指令與預(yù)先審核指令之中和類函數(shù)庫(kù)有關(guān)的相關(guān)設(shè)定即可。
提到compileAll.bat,順便向各位讀者說明一下,在前面有提到,compileAll.bat可以幫助您編譯所有位于demo\midlets目錄下的范例程序,您只要在命列列下直接輸入: compileAll即可。compileAll.bat會(huì)自動(dòng)當(dāng)您編譯的package有以下幾項(xiàng):
com.mot.j2me.midlets.bounce
com.mot.j2me.midlets.imagetests
com.mot.j2me.midlets.paddleball
com.mot.j2me.midlets.scribble
com.mot.j2me.midlets.tests
com.mot.j2me.midlets.tutorials
如果您希望compileAll.bat自動(dòng)幫您編譯其它package底下的程序,請(qǐng)您開啟compileAll.bat,修改其COMPILECLASS環(huán)境變數(shù)的設(shè)定即可。

█修改并執(zhí)行MIDlet

寫好程序之后,大家最希望的事情當(dāng)然就是讓它在手機(jī)上執(zhí)行,不過由于目前大家無法取得Motorola這些支持Java的手機(jī),所以我們只能在Motorola J2ME SDK內(nèi)附的模擬器上執(zhí)行我們寫好的MIDlet。相信手機(jī)正式推出時(shí),應(yīng)該可以順利地在手機(jī)上執(zhí)行。底下筆者將告訴您如何使用Motorola J2ME SDK內(nèi)附的模擬器來測(cè)試您所編寫的MIDlet。
在這之前,由于之前我們所編寫的范例程序只是簡(jiǎn)單的MIDlet空殼,我們必須讓它能夠在模擬器上顯示出一些信息才可以,因此請(qǐng)修改上一個(gè)程序范例,使它的內(nèi)容如下:
HelloMIDlet.java
import 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("Hello MIDlet") ;
StringItem firstStrItem = new StringItem("Hello","MIDlet") ;
firstForm.append(firstStrItem) ;
}

protected void startApp() throws MIDletStateChangeException
{
firstDisplay.setCurrent(firstForm) ;
}

protected void pauseApp()
{
}

protected void destroyApp(boolean unconditional)
throws MIDletStateChangeException
{
}
}
請(qǐng)將此文件放置在\demo\midlets目錄下。編譯完成之后,請(qǐng)將目錄切換到scripts子目錄之中,您會(huì)在此目錄里發(fā)現(xiàn)一些寫好的批處理文件。請(qǐng)?jiān)谠撃夸浵聢?zhí)行這些批處理文件指令以啟動(dòng)模擬器。執(zhí)行的指令與執(zhí)行結(jié)果如下所示:


指令: runEmul HelloMIDlet
輸出結(jié)果


指令: runMotoi1000 HelloMIDlet
輸出結(jié)果



指令: runMotoiDEN HelloMIDlet
輸出結(jié)果


指令: runStarTac HelloMIDlet
輸出結(jié)果



指令: runMyDevice HelloMIDlet
輸出結(jié)果
Error loading property file: C:/properties/mydevice.props (系統(tǒng)找不到指定的路徑。)會(huì)出現(xiàn)錯(cuò)誤信息是因?yàn)槟鷽]有指定屬于是用者自訂的手機(jī)外觀的緣故,后面將會(huì)教您如何設(shè)定用戶自訂的手機(jī)外觀。


如果我們將寫好的程序放在demo\midlets目錄以外的地方,您可以執(zhí)行下面的指令,仍然可以成功地啟動(dòng)模擬器并執(zhí)行MIDlet:
(我們假設(shè)您的Motorola J2ME SDK安裝在D:\MotoSDK目錄之中,并將您自行編寫的HelloMIDlet.java置于d:\jdk1.3.0_01\my目錄之中。同時(shí)我們假設(shè)您在d:\jdk1.3.0_01\my目錄底下執(zhí)行下面指令。)

執(zhí)行一般模擬器 java -Djava.library.path=d:\MotoSDK\lib
-classpath d:\MotoSDK\bin\Emulator.jar;d:\MotoSDK\bin\ConfigTool.jar com.mot.tools.j2me.emulator.Emulator

-classpath.;d:\MotoSDK\lib javax.microedition.midlet.AppManager HelloMIDlet

-JSA 1 1

請(qǐng)注意:
第一個(gè)-classpath設(shè)定,-classpath與路徑名稱之間有空格。
第二個(gè)-classpath設(shè)定,-classpath與路徑名稱之間沒有空格。



執(zhí)行模擬器并套用i1000手機(jī)外觀
java -Djava.library.path=d:\MotoSDK\lib
-classpath d:\MotoSDK\bin\Emulator.jar;d:\MotoSDK\bin\ConfigTool.jar com.mot.tools.j2me.emulator.Emulator

-classpath.;d:\MotoSDK\lib
-deviceFile resources\Motorolai1000.props
javax.microedition.midlet.AppManager

HelloMIDlet
-JSA 1 1

請(qǐng)注意:
第一個(gè)-classpath設(shè)定,-classpath與路徑名稱之間有空格。
第二個(gè)-classpath設(shè)定,-classpath與路徑名稱之間沒有空格。



執(zhí)行模擬器并套用iDEN手機(jī)外觀 java -Djava.library.path=d:\MotoSDK\lib
-classpath d:\MotoSDK\bin\Emulator.jar;d:\MotoSDK\bin\ConfigTool.jar com.mot.tools.j2me.emulator.Emulator

-classpath.;d:\MotoSDK\lib
-deviceFile resources\MotorolaiDENPlatform.props
javax.microedition.midlet.AppManager

HelloMIDlet
-JSA 1 1
請(qǐng)注意:
第一個(gè)-classpath設(shè)定,-classpath與路徑名稱之間有空格。
第二個(gè)-classpath設(shè)定,-classpath與路徑名稱之間沒有空格。



執(zhí)行模擬器并套用StarTac手機(jī)外觀 java -Djava.library.path=d:\MotoSDK\lib
-classpath d:\MotoSDK\bin\Emulator.jar;d:\MotoSDK\bin\ConfigTool.jar com.mot.tools.j2me.emulator.Emulator

-classpath.;d:\MotoSDK\lib
-deviceFile resources\StarTac.props
javax.microedition.midlet.AppManager

HelloMIDlet
-JSA 1 1
請(qǐng)注意:
第一個(gè)-classpath設(shè)定,-classpath與路徑名稱之間有空格。
第二個(gè)-classpath設(shè)定,-classpath與路徑名稱之間沒有空格。



執(zhí)行模擬器并套用用戶自訂手機(jī)外觀 java -Djava.library.path=d:\MotoSDK\lib
-classpath d:\MotoSDK\bin\Emulator.jar;d:\MotoSDK\bin\ConfigTool.jar com.mot.tools.j2me.emulator.Emulator

-classpath.;d:\MotoSDK\lib
-deviceFile <您的props文件所在的絕對(duì)路徑>javax.microedition.midlet.AppManager

HelloMIDlet
-JSA 1 1
請(qǐng)注意:
第一個(gè)-classpath設(shè)定,-classpath與路徑名稱之間有空格。
第二個(gè)-classpath設(shè)定,-classpath與路徑名稱之間沒有空格。
如果您將您的props文件放在d:\MotoSDK\bin的resources目錄之下,則上述指令只要改成:-deviceFile resources\<您的props文件名>



注意,當(dāng)您您直接使用上述指令啟動(dòng)模擬器,如果出現(xiàn)底下錯(cuò)誤信息:
Error loading property file: resources/defaultdevice.props (系統(tǒng)找不到指定的路徑。)
這是因?yàn)槟鷽]有將d:\MotoSDK\bin目錄下的resources子目錄復(fù)制到d:\JDK1.3.0_01\my目錄之下的緣故。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 滕州市| 庆城县| 万山特区| 陇川县| 瑞金市| 固阳县| 东丰县| 买车| 临洮县| 沂水县| 孟州市| 石景山区| 宁德市| 山西省| 五指山市| 太和县| 涞水县| 慈利县| 基隆市| 宁都县| 贡觉县| 伊吾县| 明溪县| 泰来县| 茶陵县| 琼海市| 和田县| 南宁市| 定安县| 星子县| 张家界市| 来安县| 新和县| 邻水| 增城市| 苗栗市| 新野县| 乡宁县| 开远市| 天镇县| 黎川县|