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