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