最近咨詢我瀏覽器的人太多了,所以我開了個(gè)專版,專門討論手機(jī)瀏覽器的實(shí)現(xiàn)
地址是:
http://javaeye.5d6d.com/forum-47-1.html
第一步: Wap Explorer原始資料整理
這個(gè)是我設(shè)計(jì)這個(gè)瀏覽器的第一步:
昨天完成了一個(gè)小程序,所以今天有比較空閑了,前陣子自己設(shè)計(jì)了j2me的UI,所以對(duì)在一手機(jī)畫布上繪制UI也算是比較有心得的。所以今天突發(fā)奇想,不如自己定制一個(gè)wap瀏覽器來玩下。
自己以前也做過wap網(wǎng)站,所以也知道它的大概個(gè)標(biāo)簽,想來通過xml包解釋這些標(biāo)簽不難,現(xiàn)在把我的個(gè)人想法發(fā)到這里來,希望各位愛好者提供建議。
1:設(shè)計(jì)一個(gè)可組裝的UI以提供對(duì)xml解釋后的支持。(基本上是采用以前的UI設(shè)計(jì)方式)。
2: 采用網(wǎng)站流行的xml解釋包,對(duì)wml進(jìn)行解釋,主要構(gòu)思是采用一個(gè)2維表進(jìn)行數(shù)據(jù)結(jié)構(gòu)的保存。
3:session機(jī)制,這方面是個(gè)難度,記得以前設(shè)計(jì)wap的時(shí),在測(cè)試的時(shí)候發(fā)現(xiàn)有些手機(jī)并不支持session。個(gè)人想法是在手機(jī)上保存一個(gè)sessionId,然后發(fā)送這個(gè)Id,并時(shí)刻保持這個(gè)Id與服務(wù)器的一致。
4:解釋機(jī)制,是否是一邊解釋一邊顯示,還是全部下載完,解釋完在顯示,在技術(shù)上的難度來講,第一個(gè)無疑是比較困難的,但是第二個(gè)在用戶體驗(yàn)方面存在比較大的缺陷。
5:緩存機(jī)制,主要難點(diǎn)是記錄用戶的操作,以及判斷服務(wù)器內(nèi)容是否改變,從而決定是否重新下載,還是直接從緩存中獲取。
以上幾點(diǎn)我只對(duì)第一點(diǎn)有把握,第2個(gè)估計(jì)看下文檔就ok了,其他方面我還沒有比較多的認(rèn)識(shí)
第二步:Wap Explorer V1.0 && 手機(jī)開發(fā)前景
哈哈。我的wap瀏覽器1.0版本的出來了。
解釋下功能先
1.調(diào)整字體大小
2.調(diào)整界面顏色
3.可以定制自己的首頁(yè)。
4.可以瀏覽公司很簡(jiǎn)單的wap頁(yè)面。
5.其他
未實(shí)現(xiàn)的功能有:
1,WapPage控制問題,對(duì)一些基本的控制未完成。比如數(shù)據(jù)果多。怎么樣瀏覽才可以實(shí)現(xiàn)分頁(yè)面。
2,解釋復(fù)雜頁(yè)面問題。不能解釋一些不規(guī)則的wap,比較包含特殊符合,或者其他為見果的。wap頁(yè)面比較要很嚴(yán)謹(jǐn)才可以。
3,一些功能為能實(shí)現(xiàn),比如下載圖片,保存圖片到本機(jī)根保存網(wǎng)頁(yè),收藏夾,智能數(shù)據(jù)收集(比如記錄用戶的操作習(xí)慣,實(shí)現(xiàn)相應(yīng)的規(guī)則,再者就是,記錄表單數(shù)據(jù),用戶操作記錄等,
4. 數(shù)據(jù)下載進(jìn)度條未實(shí)現(xiàn)。
5.。還有很多很多。想到再發(fā)上來。
設(shè)計(jì)的總體結(jié)構(gòu)是:
自己實(shí)現(xiàn)了一個(gè)UI。
整體采用MVC結(jié)構(gòu)。具體可參照源代碼。我想對(duì)其他的j2me應(yīng)用也是有參考價(jià)值的。
聯(lián)網(wǎng)采用多線程。相信很多用戶對(duì)于多線程編程印象也是很深刻的。線程怎么樣根界面打交道我想也是個(gè)很大的學(xué)問。我在這個(gè)版本的程序中我覺得對(duì)這段代碼也是有參考價(jià)值的。
最后是想討論下,關(guān)于j2me的前途問題。j2me出來的時(shí)間也算久了。但對(duì)于商業(yè)應(yīng)用來說是比較少的(出了游戲)我見過比較成功的應(yīng)用級(jí)別上都是一些類型QQ聊天程序。想U(xiǎn)CWEB則是一個(gè)用kjava寫的網(wǎng)頁(yè)客戶端,聽過挺多人用的。
像opera公司也出了個(gè)mini的wap瀏覽器,我下載用了下,感覺也很一邊,特別是這幾天地震把光纖給搞壞了。所以你用mini來上網(wǎng)也是很慢的。我
估計(jì)代碼了肯定是做了代理服務(wù)器,先把用戶請(qǐng)求發(fā)送到那邊的服務(wù)器,然后在發(fā)送到客戶端,這樣對(duì)于客戶端來說。做的工作就少了很多。
不管怎么樣都好。對(duì)于企業(yè)應(yīng)用來說。并不是想sun官方所期待的那樣。現(xiàn)在window mobile發(fā)展勢(shì)頭很多。它倡導(dǎo)的是娛樂生活,對(duì)于娛樂方面的功能來說。我想現(xiàn)在能出其左右的是沒有的。
不過是那個(gè)技術(shù),那個(gè)體系相對(duì)于程序員來說,意義也不大,我們只需要把握好基礎(chǔ)的東西。其他的其實(shí)也就沒什么了。說白了,真是一個(gè)工具而已。我們現(xiàn)在不缺少工具,只是缺少靈感,缺少idea。
對(duì)于策劃一個(gè)產(chǎn)品。創(chuàng)新一個(gè)產(chǎn)品,有時(shí)候我們是想不到這么多的。還真的需要有專門的人來做。他可以不懂技術(shù)。他只懂需求就行了。
昨天根市場(chǎng)部的同事去吃飯。發(fā)現(xiàn)做市場(chǎng)也是件很辛苦的事情,他要考慮的事情其實(shí)比我們做技術(shù)的人更多。壓力也更大。都說我們拿不到什么錢,其實(shí)也是有原因
的。我們只需要按照需求來做。比如我們的技術(shù)能力達(dá)到了那個(gè)層次。如果我們不想活的太累
的話,我們大可不必思考改怎么做,只需要知道這樣做就行了。做市場(chǎng)就不同了。他要考慮,我產(chǎn)品做出來有沒有收益,還要找技術(shù)。我這個(gè)產(chǎn)品能不能做。一步步
都要設(shè)計(jì)好需求,變成他要去了解用戶需求,又要了解技術(shù)開發(fā)者的需求。。。。。。。
哈哈。說了這么多廢話。說話正題了。 對(duì)于Wap Explorer V1.0,大家可以熱烈的討論。希望愛好手機(jī)開發(fā)的朋友能多交流。
還有我們放開手腳討論手機(jī)開發(fā)的前途j2me也好,mobile也罷,再者就是liunx或者是sysmain等等。能說的都說出來吧。
現(xiàn)在暫時(shí)不把源代碼發(fā)布上來,討論熱烈的話,或者遲點(diǎn)再發(fā)幾個(gè)截圖上來。根代碼。 大家期待吧。。。。。。。。
第三步:
Wap Explorer 圖片預(yù)覽
前幾天說要設(shè)計(jì)一個(gè)Wap瀏覽器的,經(jīng)過上個(gè)禮拜天的設(shè)計(jì),基本已經(jīng)把UI的框架搭建出來了。不過對(duì)于wap的Wml解釋器還沒寫,一來這方面比較難寫,沒有實(shí)踐過,二來這幾天公司有事情忙。所以就停了下來,不過趁著今天下午有空,我發(fā)些設(shè)計(jì)好的截圖給大家看。
在UI里我實(shí)現(xiàn)了對(duì)字體的控制已經(jīng)對(duì)皮膚(所謂的皮膚只是換換顏色而已)的控制
艾可惜只能發(fā)3個(gè)附件。
{1E0DF53D-767F-4C53-93F1-74D307C3E874}0.jpg |
描述: |
|
文件大小: |
17 KB |
看過的: |
文件被下載或查看 161 次 |
下載
|
{58DB28A3-11CB-4F4A-B864-B9282BF44468}0.jpg |
描述: |
|
文件大小: |
13 KB |
看過的: |
文件被下載或查看 65 次 |
下載
|
{D1C1BED4-7807-4D6A-A6E5-832166EC8ADA}0.jpg |
描述: |
|
文件大小: |
10 KB |
看過的: |
文件被下載或查看 59 次 |
下載
|
第4步:
Wap Explorer 初步設(shè)計(jì)源代碼
字: J2ME
剛才在我的Q群里面討論了下關(guān)于Wap Explorer的開發(fā)。里面的朋友建議我把開發(fā)的過程寫到blog,以方便學(xué)習(xí)與討論。現(xiàn)在我把我寫好的代碼公布出來。并說明我的設(shè)計(jì)結(jié)構(gòu)。(在此說明下,對(duì)于里面的UI設(shè)計(jì)我前面寫過很多文章)
一個(gè)UI包--包括了所有的界面實(shí)現(xiàn)接口等,Wap的顯示也主要是通過這個(gè)包里面的東西劃出來的。
里面有兩個(gè)核心的東西,Part--控件接口, Panel--Form接口。
比如超鏈接,TextFiel,SoftButton等都是Part, 彈出窗口,F(xiàn)ormPanel都是Panel。
一個(gè)Wap引擎。這部分未實(shí)現(xiàn),等大家參考。我參考過jxml等開源的東西,覺得基本上可以實(shí)現(xiàn)自己的功能,不過我還是想和大家寫一個(gè),一來可以相互學(xué)習(xí)提高。二來也可以多了解下關(guān)于xml(這方面我很菜)。
一個(gè)網(wǎng)絡(luò)連接引擎--主要是下載數(shù)據(jù)用的。
一個(gè)RMS包。主要是用來保存用戶數(shù)據(jù)的。
對(duì)了。在源代碼里之看wuhua包下面的就行了,其他的都是一些網(wǎng)站找來的代碼
這里還有個(gè)問題是,怎么樣可以使Wap引擎跟UI跟網(wǎng)絡(luò)連接引擎很好的結(jié)合呢。
提出一些參考:
1,一邊下載,一邊解釋,一邊顯示(這是最完美的方案,比如firefox就是這樣)這樣對(duì)操作有大量圖片資源的時(shí)候有很好的體驗(yàn)。我們可以先顯示出文字,然后在一邊下載圖片。
2,全部下載完在解釋,顯示(相對(duì)與上面的方案來說)這是比較容易的。但是顯示會(huì)很慢。給用戶造成很不好的體驗(yàn)。
還有很多的其他要求。。。。。。。。
|