JIL Widget開發(fā)入門教程
本文和大家重點(diǎn)學(xué)習(xí)一下JIL Widget開發(fā)入門的一些知識,基于window下開發(fā)JIL Widge只需要兩個(gè)工具:一個(gè)是Java虛擬機(jī),另一個(gè)是jilSDK開發(fā)工具,所以說jil的運(yùn)行環(huán)境非常簡單。
JIL Widget開發(fā)入門
2009年7月我有幸參加了中國移動通信集團(tuán)廣東有限公司舉辦的JILWidge開發(fā)培訓(xùn)會。感覺Jil這項(xiàng)技術(shù)很不錯(cuò),所以將自己的使用體會與大家分享學(xué)習(xí)。
一、JIL概述
JIL是由中國移動、軟銀和沃達(dá)豐于2008年4月24日共同創(chuàng)建的,中文名稱為“聯(lián)合創(chuàng)新實(shí)驗(yàn)室”(JointInnovationLab,JIL).中移動想將Jil Widget通過BAE安裝到各操作系統(tǒng)的手機(jī)上,現(xiàn)在大概只支持Ophone、WindowMobile、Symbian這三個(gè)平臺。
BAE(BrowserBasedApplicationEngine)是面向移動互聯(lián)網(wǎng)的,跨移動終端操作系統(tǒng)平臺的應(yīng)用運(yùn)行環(huán)境,感覺就是一個(gè)Widget的引擎,有點(diǎn)類似java虛擬機(jī)那樣去解釋應(yīng)用程序。他們會為各種手機(jī)平臺開發(fā)不同的BAE然后在上面運(yùn)行JILWidget(感覺BAE就如同是安裝在不同手機(jī)中的瀏覽器)。BAE以后會預(yù)裝在新推出的移動手機(jī)上,老用戶就要通過移動網(wǎng)站下載了。據(jù)移動透路MMarket會在8月10日后的某一天開始正式運(yùn)行,他們會在MMarket上放上***批的Jilwidget。
二、JILWidget開發(fā)環(huán)境的安裝
基于window下開發(fā)JILWidge只需要兩個(gè)工具:一個(gè)是Java虛擬機(jī),另一個(gè)是jilSDK開發(fā)工具,所以說jil的運(yùn)行環(huán)境非常簡單。
如下圖2-1的兩個(gè)安裝包文件:
(一)Java的安裝
Java虛擬機(jī)需要用1.5以上的版本,具體的安裝步驟如下:
1.雙擊jdk-1_5_0_17-windows-i586-p.exe彈出許可協(xié)議,點(diǎn)擊接受,然后按下一步。
2.選擇安裝目錄后,點(diǎn)擊下一步并開始安裝直到顯示安裝完成。
3.Java環(huán)境的測試
(1)在window開始菜單中點(diǎn)擊運(yùn)行,在運(yùn)行中輸入cmd然后打開命令行窗口。
(2)在命令行中輸入java并按回車鍵,如果能顯示如下圖2-6信息就表示java環(huán)境運(yùn)行正常了。
#p#
(二)JilSDK的安裝
1.雙擊jil_sdk_setup.exe工具包彈出許可協(xié)議后點(diǎn)擊接受,然后按下一步
2.選擇安裝目錄后點(diǎn)擊下一步,直到安裝完成為止。
(三)JilSDK的運(yùn)行
1.JilSDK安裝完成后會在桌面上生成”JILSDK”的快捷方式如下圖2-10,Jil的SDK其實(shí)就是內(nèi)置在Eclipse中的一個(gè)插件。
2.雙擊快捷方式后會進(jìn)入啟動界面
3.***次訪問時(shí)會提示您選擇工作空間,點(diǎn)擊Ok后會進(jìn)行開發(fā)工具的主界面
#p#
(四)JILWidget開發(fā)的模擬器的啟動
1.配置環(huán)境變量。設(shè)置步驟如下
對著”我的電腦”點(diǎn)擊右鍵->選擇屬性->選擇高級->選擇環(huán)境變量,然后編輯系統(tǒng)變量中的path變量,在變量值中輸入您的SDKTools目錄的路徑,如下圖2-13。輸入完后按確定保存。
2.創(chuàng)建sdcard鏡像文件
在命令行窗口中輸入如圖2-14的命令后會在對應(yīng)目錄中生成一個(gè)如圖2-15的鏡像文件。
上圖命令的意思是創(chuàng)建一個(gè)50M的sdcard,Sdcard的大小可以按您的實(shí)際需求改變。
3.啟動模擬器
(1)在文本編輯器中輸入圖2-16的Jil模擬器啟動命令,并保存為如圖2-17的bat文件。
(2)雙擊MyOphone.bat文件起動模擬器,***次啟動模擬器的時(shí)候需要比較長的時(shí)間。
#p#
三、簡單JILWidget開發(fā)的應(yīng)用----漂亮的液晶時(shí)鐘
(一)開發(fā)如上圖3-1的液晶時(shí)鐘時(shí)需要做以下準(zhǔn)備
1.首先準(zhǔn)備好13幅液晶數(shù)字的圖片,它們的顯示效果和名稱如圖3-2所示
2.編寫好的一段液晶時(shí)鐘的JavaScript代碼
- viewplaincopytoclipboardprint?
- varNumSrc="images/c0.gif";
- for(vari=0;i<=9;i++){
- eval("varc"+i+"=newImage();c"+i+".src=NumSrc.replace('c0.gif','c'+i+'.gif');");
- }
- document.write('<tablebordertableborder="0"cellspacing="0"bgcolor=blackheight=1><tr>');
- document.write('<td><imgsrcimgsrc='+NumSrc+'id="lch1"></td>');
- document.write('<td><imgsrcimgsrc='+NumSrc+'id="lch2"></td>');
- document.write('<td><imgsrcimgsrc='+NumSrc.replace("c0.gif","colon.gif")+'></td>');
- document.write('<td><imgsrcimgsrc='+NumSrc+'id="lcm1"></td>');
- document.write('<td><imgsrcimgsrc='+NumSrc+'id="lcm2"></td>');
- document.write('<td><imgsrcimgsrc='+NumSrc.replace("c0.gif","colon.gif")+'></td>');
- document.write('<td><imgsrcimgsrc='+NumSrc+'id="lcs1"></td>');
- document.write('<td><imgsrcimgsrc='+NumSrc+'id="lcs2"></td>');
- document.write('<td><imgsrcimgsrc='+NumSrc.replace("c0.gif","cam.gif")+'id="lcapm"></td>');
- document.write('</tr></table>');
- functiontimerun(){
- now=newDate();
- myhour=now.getHours();
- myminute=now.getMinutes();
- mysecond=now.getSeconds();
- //判斷是上午還是下午:
- if(myhour<12)lcapm.src=NumSrc.replace("c0.gif","cam.gif");
- elselcapm.src=NumSrc.replace("c0.gif","cpm.gif");
- if(myhour>12)myhour-=12;
- //改變小時(shí)數(shù)圖片:
- lch1.src=eval("c"+Math.floor(myhour/10)+".src");
- lch2.src=eval("c"+myhour%10+".src");
- //改變分鐘數(shù)圖片:
- lcm1.src=eval("c"+Math.floor(myminute/10)+".src");
- lcm2.src=eval("c"+myminute%10+".src");
- //改變秒鐘數(shù)圖片:
- lcs1.src=eval("c"+Math.floor(mysecond/10)+".src");
- lcs2.src=eval("c"+mysecond%10+".src");
- //循環(huán)運(yùn)行本函數(shù):
- setTimeout("timerun()",500);
- }
- varNumSrc="images/c0.gif";
- for(vari=0;i<=9;i++){
- eval("varc"+i+"=newImage();c"+i+".src=NumSrc.replace('c0.gif','c'+i+'.gif');");
- }
- document.write('<tablebordertableborder="0"cellspacing="0"bgcolor=blackheight=1><tr>');
- document.write('<td><imgsrcimgsrc='+NumSrc+'id="lch1"></td>');
- document.write('<td><imgsrcimgsrc='+NumSrc+'id="lch2"></td>');
- document.write('<td><imgsrcimgsrc='+NumSrc.replace("c0.gif","colon.gif")+'></td>');
- document.write('<td><imgsrcimgsrc='+NumSrc+'id="lcm1"></td>');
- document.write('<td><imgsrcimgsrc='+NumSrc+'id="lcm2"></td>');
- document.write('<td><imgsrcimgsrc='+NumSrc.replace("c0.gif","colon.gif")+'></td>');
- document.write('<td><imgsrcimgsrc='+NumSrc+'id="lcs1"></td>');
- document.write('<td><imgsrcimgsrc='+NumSrc+'id="lcs2"></td>');
- document.write('<td><imgsrcimgsrc='+NumSrc.replace("c0.gif","cam.gif")+'id="lcapm"></td>');
- document.write('</tr></table>');
- functiontimerun(){
- now=newDate();
- myhour=now.getHours();
- myminute=now.getMinutes();
- mysecond=now.getSeconds();
- //判斷是上午還是下午:
- if(myhour<12)lcapm.src=NumSrc.replace("c0.gif","cam.gif");
- elselcapm.src=NumSrc.replace("c0.gif","cpm.gif");
- if(myhour>12)myhour-=12;
- //改變小時(shí)數(shù)圖片:
- lch1.src=eval("c"+Math.floor(myhour/10)+".src");
- lch2.src=eval("c"+myhour%10+".src");
- //改變分鐘數(shù)圖片:
- lcm1.src=eval("c"+Math.floor(myminute/10)+".src");
- lcm2.src=eval("c"+myminute%10+".src");
- //改變秒鐘數(shù)圖片:
- lcs1.src=eval("c"+Math.floor(mysecond/10)+".src");
- lcs2.src=eval("c"+mysecond%10+".src");
- //循環(huán)運(yùn)行本函數(shù):
- setTimeout("timerun()",500);
- }
準(zhǔn)備好以上文件后,我們就可以進(jìn)行widget的開發(fā)了。#p#
(二)在JilSDK中制作漂亮的液晶時(shí)鐘
1.在eclipse中新建一個(gè)WidgetProject
2.在彈出的NewWidgetProject窗口中輸入ProjectName如圖3-5中的Clock,并點(diǎn)擊finish.
3.按finish后系統(tǒng)會生成如3-6的公程文件
◆config.xml應(yīng)用程序的配置文件
◆Default.png默認(rèn)的背景圖
◆Icon.png默認(rèn)的應(yīng)用程序圖標(biāo)
◆Clock.htmlwidgetUI界面
◆Clock.jswidget程序?qū)崿F(xiàn)代碼
◆Clock.csswidget樣式代碼
◆bin目錄會生成一個(gè)系統(tǒng)編譯后的wgt文件,如Clock.wgt
4.新建images目錄并將數(shù)字圖片文件拷進(jìn)該目錄。
5.在Clock.js文件中輸入已準(zhǔn)備好的代碼
6.在Clock.html文件對應(yīng)的位置中輸入<script>timerun();</script>啟動代碼,如圖3-8所示。
7.對剛才輸入的兩個(gè)文件進(jìn)行保存,這時(shí)會在bin中產(chǎn)生一個(gè)Clock.wgt文件,這個(gè)就是我們***個(gè)生成widget應(yīng)用了。
#p#
三)在JILWidget開發(fā)的模擬器中安裝及運(yùn)行液晶時(shí)鐘
1.進(jìn)入bin目錄并將Clock.wgt文件拷進(jìn)模擬器的sdcard中。(在模擬器啟動的狀態(tài)下進(jìn)行)
在啟動的命令窗口中輸入:adbpushClock.wgt/sdcard按回車后出現(xiàn)successfully提示。如圖3-10所示
2.點(diǎn)擊模擬器的FileManager圖標(biāo),然后進(jìn)入SdCard,這時(shí)會看到我們剛才拷進(jìn)模擬器的Clock.wgt文件。如下圖所示
3.點(diǎn)擊clock.wgt會彈出安裝提示按yes鍵后直到安裝完成。如下圖3-12和圖3-13所示
4.點(diǎn)擊模擬器的WidgetManager圖標(biāo)后會進(jìn)入installed程序列表,點(diǎn)擊后就會產(chǎn)生圖3-1所示的液晶時(shí)鐘界面了。
#p#
三、JILWidget開發(fā)的應(yīng)用程序的發(fā)布
開發(fā)好的Widget是需上傳到MMarket上并要通過驗(yàn)證和簽名后才能正式發(fā)布的。
在MMarket上的軟件獲得的利潤會和移動3:7分成(移動3開發(fā)者7)。
四、總結(jié)
Jilwidget開發(fā)優(yōu)點(diǎn)和缺點(diǎn)
1.優(yōu)點(diǎn)
(1)開發(fā)簡單
(2)可以在BAE的基礎(chǔ)上跨越不同的手機(jī)平臺(基本做一次開發(fā)就可以用了)
(3)可將現(xiàn)有的javascript適當(dāng)修改一下就可以應(yīng)用到widget上面(并支持jQuery等)
2.缺點(diǎn)
(1)安全性相對較差
(2)模擬器啟動慢,操作系統(tǒng)也相對慢
(3)開發(fā)的程序有局限性.
(4)對視頻音頻暫時(shí)支持不是太好
總的來說JilWidget是一個(gè)非常適合現(xiàn)有web開發(fā)人員去轉(zhuǎn)型編寫手機(jī)端應(yīng)用,不像開發(fā)Symbian、WindowMobile等手機(jī)應(yīng)用那樣有很高的門檻。jilsdk是一個(gè)很輕量級的手機(jī)端應(yīng)用開發(fā)工具,能使我們輕而易舉地踏進(jìn)火爆的3G手機(jī)時(shí)代。祝愿未來的Ophone會給我們帶來更多的驚喜。
五、開發(fā)工具參考網(wǎng)址
(1)http://www.jil.org/#SDKSSDK開發(fā)包下載
(2)http://www.jil.org/#DOCUMENTS文檔下載
(3)http://www.jil.org/#CODE開發(fā)源代碼例子
(4)http://www.sun.comJava虛擬機(jī)
【編輯推薦】
- AndroidWidget開發(fā)系列解讀
- AndroidWidget開發(fā)詳解
- 全面認(rèn)識WebWidget開發(fā)
- DashBoard的Widget開發(fā)指南
- 解析AndroidWidget開發(fā)中如何構(gòu)建Activity類