2006年2月15日
#
自從Apple在safari上使用webkit并移植到iphone后,webkit就仿佛是獲得了選秀第一名似的,吸引了眾多眼球。
其實(shí),我最早聽說webkit是在iphone出來前一兩年,當(dāng)時有報道說Nokia正在采用webkit為它下一代的Symbian平臺做一個引擎,而且還有專門的社區(qū),但比較封閉,很難進(jìn)入那個圈子,讓人一點(diǎn)感覺沒有。不過,至少說明Nokia很早就盯上這一塊了。
iphone發(fā)布后,Apple似乎就接管webkit了,從此,webkit社區(qū)就有了巨大變化。Apple把能開放的東西都放到了webkit社區(qū)里面,速度還相當(dāng)?shù)目欤ㄓ肁pple自己的話說,他們貢獻(xiàn)了81%的力量,看看webkit社區(qū)的主力開發(fā)人員,有多少來自Apple!)現(xiàn)在,我們時不時的可以看到webkit的更新,比如對html5的跟進(jìn),css的特效等新功能!其中不得不重點(diǎn)提出的是2008年6月2日,webkit社區(qū)發(fā)布了高性能javascript引擎SquirrelFish!9月3日google chrome發(fā)布,采用了V8 javascript引擎,號稱比SquirrelFish還快,兩個禮拜后webkit就發(fā)布了SquirrelFish Extreme給予正面還擊。巨頭們牟足了勁爭先把javascript引擎油門踩到底!我不想猜測他們賣力的真正原因,但是,我覺得隨著移動終端能力加強(qiáng),javascript大面積攻進(jìn)終端已經(jīng)指日可待了,iphone和android已經(jīng)實(shí)現(xiàn)了。
這期間,由于Apple的快速組合拳,Nokia經(jīng)營的webkit專區(qū)很快就倒閉了。但他并沒有放棄對webkit的投入,2008年1月28日Nokia宣布收購了Trolltech公司。現(xiàn)在Trolltech lab作為Nokia的代表仍然活躍在webkit社區(qū)之中。就前兩天,他們還在http://planet.webkit.org/發(fā)布了一篇標(biāo)題極其引人的博文“Creating a Google chat client in 15 minutes”,為QWebView做了一把廣告,相信qt的粉絲肯定不會錯過。而本月初發(fā)布的qt4.5中,明確指出qt加強(qiáng)了對webkit諸如SquirrelFish等新功能的整合。那么就讓我們期待一下Nokia的新款機(jī)器吧。
到此,我們已經(jīng)看到Google, Apple, Nokia, Palm等移動終端的領(lǐng)頭羊們所采取的行動,然而,不要忘記軟件廠商!Adobe就是杰出的代表。作為RIA的強(qiáng)烈倡導(dǎo)者,他也選擇把webkit整合到其AIR平臺,你可以想象這個webkit+flash的威力有多強(qiáng)大!而Adobe發(fā)起的openscreen項(xiàng)目,更是表明了他要在RIA上爭奪王位的野心!
好了,不啰嗦那么多了,總之呢,webkit已經(jīng)成為移動互聯(lián)網(wǎng)這出大戲的主角了,回歸到我在上一篇中提到的主題,讓我們來研究一下android.webkit.WebView的功能,來看android上的RIA。
敬請關(guān)注下一篇--使用WebView的小例子。
1年多前,揣著在移動終端推廣OSGi的夢想,我離開了原來的公司,來到了一個自認(rèn)為更利于osgi的地方,在我看來osgi擁有eRCP這樣的粉絲,應(yīng)該會給它在移動終端上提供廣闊的舞臺。然而半路殺出個程咬金,google android!第一次見到它時,我不相信osgi會輸,于是就廢寢忘食的研究它,結(jié)果我沒有進(jìn)行太多的抵抗,很快就被Android收編了。我得承認(rèn)它在某些關(guān)鍵的因素,確實(shí)比osgi更適合移動終端。對此,我只能感嘆google開源的偉大,以及摒棄jcp的雷厲風(fēng)行!但是,更為重要的是,在移動互聯(lián)網(wǎng)時代即將到來的時刻,Android為我們打開了一扇方便之門,這到底為何?
通過對Android的(java)源碼進(jìn)行掃描后,我看到了像jsr211,MVM這些老朋友的影子,嗯,我可不想再炒這些舊飯了。還有啥?網(wǎng)上熱炒android用了webkit作為其瀏覽器的引擎,和iphone的safari使用的引擎一樣,這個東西應(yīng)該不錯,因?yàn)槲乙恢庇X得eRCP沒有很好的web控件,使得它在移動平臺上遜色不少,于是我翻到了android.webkit這個java包,wow! Google給webkit封裝了很多java的接口,這真是java開發(fā)人員的福氣,(聽說很多java開發(fā)人員對sun的javafx期待度最高的就是一個傳說中的JWebView控件,但是不知道出來沒,算了,我懶得查證了,因?yàn)榘超F(xiàn)在不想浪費(fèi)太多在sun java上,呵呵),不過我覺得這更是廣大互聯(lián)網(wǎng)應(yīng)用開發(fā)人員的福氣!想想!用html + css + javascript就能編寫android的類似電話簿,日歷甚至手機(jī)桌面的應(yīng)用,這難道不讓您浮想聯(lián)翩嗎?所以,如果說Android為移動終端進(jìn)入互聯(lián)網(wǎng)開了一扇門,那么android.webkit.WebView就是這扇門的金鑰匙,而webkit就是通向互聯(lián)網(wǎng)的康莊大道!
其實(shí)android的webview是一個極端復(fù)雜的控件,而我個人認(rèn)為它是可以實(shí)現(xiàn)現(xiàn)在熱炒的RIA/webos等概念的基石!雖然我進(jìn)入這個領(lǐng)域不長,但覺得它非常有意思,很有前途,所以我打算寫一個系列,分享對它的理解,強(qiáng)烈歡迎各位高手指點(diǎn)!
怎么開始說呢?不知道大家有沒有注意,年初Palm公司在CES上palm pre的基于webkit的webos驚艷之秀,十足掉起了大家的胃口,這是我聽到第一個冠以webos的移動終端,這是不是意味著目前由palm來唱這個webos的獨(dú)角戲呢?答案當(dāng)然不是,其實(shí)很多終端廠家以及平臺廠商很早就率領(lǐng)大部隊(duì)兵臨webos的城下了,相信很快一場硝煙彌漫的戰(zhàn)爭就要開始了......
欲知端的,敬請關(guān)注移本系列第二篇--忽如一夜春風(fēng)來,web花開各終端
osgi系列已經(jīng)發(fā)表了有將近2年的時間了,很高興這期間得到了許多朋友的關(guān)注,你們和我的討論切磋都讓我興奮無比。而過去很長的時間里,由于靈感枯竭外加精力有限,不能給大家分享更多osgi的精彩,實(shí)在辜負(fù)大家的期望,還請諒解。不過,根據(jù)這段時間大家和我私下的討論,發(fā)現(xiàn)很多人都苦惱于分不清楚bundle和service的關(guān)系,而我的osgi 5-6又臭又長,而且還非常依賴技術(shù),實(shí)在是坑害入門者的必備武器。這個不足,猶如頭上方圓半尺盤旋的蒼蠅,困擾著我,解釋的郵件也不知寫多少,估計收效甚微。于是我決定再次出山,寫一個驚世駭俗的分析文章,力圖讓更多讀者都能夠把這兩個瘋馬牛理清楚。
開講之前,還是用老辦法,給大家舉個例子。放心,這個例子一點(diǎn)都不技術(shù),而且我相信你可能比我還清楚。大家都知道房地產(chǎn)商是怎么運(yùn)作樓盤的吧。據(jù)我淺顯的認(rèn)識,他們都會先進(jìn)行一些圖紙上的規(guī)劃,里面包含小區(qū)的整體規(guī)模,樓房外觀以及廣大疾苦民眾最為關(guān)心和渴求的戶型圖。據(jù)說,很多房地產(chǎn)商在搞定政府某些關(guān)鍵部門(個人意見僅供參考)拿到一塊地后,根本不用費(fèi)心思去自己規(guī)劃這些自己都一竅不通的東西,只要請一個有資質(zhì)的第三方公司寫寫畫畫,甚至照搬某西方發(fā)達(dá)國家的某社區(qū)概念,冠于中國特色云云,就能使廣大民眾趨之若鶩,傾囊搶購。ok,你可能受不了我又憤世嫉俗了,這個到底和osgi有啥關(guān)系?別著急,天色已經(jīng)很晚,下次某個時間請繼續(xù)關(guān)注osgi(七)續(xù),其間,請大家先考慮一下,如何用ooa的方式來描述人們?nèi)绾钨彿浚约霸诜孔永镞M(jìn)行日常生活這樣的簡單場景。
如果你一直關(guān)注osgi在embedded的發(fā)展,并且還能到舊金山參加正在舉行的java one,那我真是羨慕死你了.
Nokia在她的N800上demo運(yùn)行了osgi(此消息來源于david beers對BJ在osgi alliance blog上的評論,關(guān)于demo可以看這個link http://thehereweb.googlepages.com/)
同時美國運(yùn)行商Sprint也宣布采用osgi的手機(jī)平臺將會在年底面世.多么值得期待的事情!
瞎整了半年多,克服了重重困難,終于把原來framework做了更新,如果有興趣,還可以按照原來的Link下載。
framework下載后,解壓并運(yùn)行startframework.bat就可以啟動framework了。
目前該framework只支持在內(nèi)存中存儲bundle.
另外,多增加了一個管理bundle,它為framework提供了簡單的圖形化操作界面,可以在這里下載。
http://www.aygfsteel.com/Files/Ferrari4000/bundlemanagement.zip
下載后,最好先把名字改為bundlemanagement.jar
然后可以這樣安裝,假設(shè)該文件下載到d:\bundles下,則可以在framework的shell下輸入
in file:d:/bundles/bundlemanagement.jar
安裝該bundle,安裝成功后輸入stt 1(注意:1是數(shù)字一),啟動該bundle就可以出現(xiàn)圖形操作界面了。
圖形界面提供bundle的安裝(只支持本地安裝),啟動,停止,升級和刪除等簡單功能。
其他功能會在后面陸續(xù)增加。目前這個bundle只能運(yùn)行在j2se環(huán)境下。
給的源代碼沒有很好的build文件,等我有時間了,再寫一個。
感謝畢嘉兄弟的支持,他幫助設(shè)計了bundle存儲模塊以及實(shí)現(xiàn)了bundle在內(nèi)存存儲的第一版。
有啥問題,可以直接給我發(fā)郵件,jerrylee.li@gmail.com
前兩天,看到Peter的blog里說,由ibm牽頭發(fā)起了jsr291(
http://www.jcp.org/en/jsr/detail?id=291),
要把osgi的core應(yīng)用到目前的j2se上,以填補(bǔ)jsr277發(fā)布前的需求空白。
osgi和277的pk開始了!我投osgi一票,呵呵,你買誰?
繼開設(shè)Blog后(http://www.osgi.org/blog/index.html),昨天OSGi Alliance又宣布開設(shè)一個public的mail list,每個對OSGi感興趣的人都可以加入到這個列表中,通過這個列表可以訊問OSGi的相關(guān)的各種問題以及訂閱列表的郵件。
請到http://bundles.osgi.org/mailman/listinfo/osgi-dev這里注冊。
下面是BJ Hargrave的代表OSGi Alliance發(fā)的announcement
Hello,
As part of the OSGi evangelism work, I would like to announce that OSGi now has a new public mail list for OSGi technical questions and discussion. This mail list is a public list and is open to anyone to participate. This new list is mainly for non-members to discuss OSGi technology and ask question about the technology. ......
The new mail list address is:
osgi-dev@bundles.osgi.org
You can subscribe to the list here:
http://bundles.osgi.org/mailman/listinfo/osgi-dev or by sending an e-mail to osgi-dev-subscribe@bundles.osgi.org.
So please go ahead and subscribe to the new osgi-dev mail list. Your participation there can help educate others about the OSGi technology.
BJ Hargrave
Senior Technical Staff Member, IBM
OSGi Fellow and CTO of the OSGi Alliance
這里是我目前的成果。
http://www.aygfsteel.com/Files/Ferrari4000/framework.zip包含了framework的jar文件。
解壓后,直接運(yùn)行.bat文件就可以了。這個framework實(shí)現(xiàn)了r4core的大部分api(除一些支持local和安全的外,secrurity admin和conditional permission這兩個服務(wù)也沒有實(shí)現(xiàn),url service也沒有實(shí)現(xiàn)),輸入help可以看到可以運(yùn)行的命令(不過全是英文的,還是我寫的,將就一下吧)。
http://www.aygfsteel.com/Files/Ferrari4000/src.zip包含所有源碼。代碼有點(diǎn)亂,hoho
要成功編譯代碼,您還需要下載這個http://www.aygfsteel.com/Files/Ferrari4000/osgi.rar
解壓并后得到4個jar,并把他們放入到build path中,import順序保證它們優(yōu)先于jre就可以了。
我打算重新編寫了。把framework的實(shí)現(xiàn)重新規(guī)劃一下,然后實(shí)現(xiàn)core的所有內(nèi)容,進(jìn)而再實(shí)現(xiàn)cmpn的所有服務(wù)。
如果你對開發(fā)osgi framework感興趣,一起來吧!
給我發(fā)信:jerrylee.li@gmail.com