項目的由來
去年10月份左右,個人開發了一個足球即時軟件,在此構建的一個ui,加上一些解釋wml的一些項目,決定把兩者組合起來,開發一可用的瀏覽器,--- 這就是最此的想法。
經過大概一個月左右時間實現了下,然后發布出來,但這個瀏覽器還不是一個可用的東西。
這個就是為什么有這個開發日志的由來,我想再接下來的時間里,對它進行二次開發,進行重構。 這篇文章開始的名字是:
重溫Wap Explorer之主頁從wml構建 想來沒碰j2me也有好幾個月了,很是想念它,所以就動用了這幾天的時間來重新構建一個主頁出來,以前Wap Explorer的主頁完全是構建一個class,然后在這個class里面添加那些控件顯示出來的,
這幾天我也不停的重構wml解釋引擎,跟wap UI部件,昨天終于把主頁重構完畢,發個帖出來,讓大家欣賞下。也算是報答各個網友的關心。
現在我把文章的名字變了下,改成
重構Wap Explorer 使之可以成為一個商業產品?,之所以加個?號,是因為一個成熟的商業產品并不是想像的那么簡單。
不過有一點是可以肯定的,那就是每天不斷的重構,久了,一些東西就會顯現出來,很多不明朗跟不明白的東西都會跑出來,這是一件很有趣的事情。
以后我會以開發日志的形式更新這個帖子,以后的日志就不寫到這里了,直接跟帖,有興趣的朋友可以在這里討論,砸磚。
我很希望看到這樣的情況發生
先看看圖片,
然后再看看那些主頁跟幫助的wml
項目開發日志
5月23日,
1. 昨天運行軟件的時候,發現出現了很多問題,1,wml解釋慢了點,2,打開一些異常的url會出現程序崩潰,3,軟件運行久了就會出現內存溢出。
2. 今天重點解決的是wml解釋引擎優化,網絡下載優化等
3. 恩。
對了。你有沒有研究http下載速度問題
比如你獲取input然后,讀取長度,然后在對長度進行分割,同時啟動線程對那些分割進行下載,這樣速度會快很多
4. 不過如果設計的好的話,同時啟動2個線程去讀取數據到是可以的,特別是讀取圖片的時候,一定要同時開啟2個線程去讀取,不然的話,慢啊
5. 關閉所有日志輸出可以快很多。比如我打開日志輸出輸掉是解釋一個比較大的wml是2秒,關閉的話0.8秒左右(不過這個日志的輸出,量比較大)
6. 在采用kxml解釋引擎的時候,發現kxml下載網絡數據的時候,會丟失數據包,所以解釋的時候,wml變了形狀,甚至是出現異常情況,導致程序崩潰,所以今天要解決的問題是自己實現下載機制,并采用多線程的技術進行下載。
7.
5月22日,
8. 今天重點重構一個下載進度條,但是這個下載進度條要人性化一點。怎么做了,上網去找下有沒有這方面的資料
9. 下載進度條搞定,不過,很可惜,設計的不怎么好看。這個問題也解決了,進度條也好看多了
10. 開始設計Cokie跟緩存功能,設計初期就遇到了困難,出現cache死鎖問題。
超鏈接支持打電話的功能了
5月21日,
11. 繼續修正了一些bug,給字體的標簽進行解釋。
12. 今天給字體加了個解釋顏色的功能,比如標記<big color=”fff”>Fox</big>就可以實現不同樣式的字體了。哈
13. 實現了一個打電話的功能,發短信,發彩信的功能
14. 寫了一個help的wml跟main.wml哈哈,我可以成功的解釋這些wml,
15. 還沒實現的功能有input,selectOption跟img等標記
16. 重構了一個關于退出事件的方式,決定采用時間鏈的形式,給一個class傳入一個事件代碼
17. 超鏈接支持打電話的功能了
5月20日,
18. 今天重構了WapPage的設計,雖然主頁不夠完美,比如有些標記支持的不好,但是這個是kxml解釋引擎的事情,還有一個解決了問題是可以支持,用戶查看狀態的問題了,還差一個下載狀態的UI,不過應該很簡單。
19. 重構了MainPage的設計,設計成從wml文件中讀取數據然后顯示出來
20. 整天想這些東西真的很煩惱
5月19日,
1. 今天是禮拜6,我很開心,昨天晚上回到家,搞定了WapPage的一些重構,不過還差很多,比如關于瀏覽下拉頁面的時候,一個狀態條表示,用戶的動作,下載進度條。等等,今天重點是重構下下來進度狀態跟用戶事件的完善。
2. 繼前幾天搞定Kxml解釋wap出錯的bug后,昨天晚上有對kxml解釋引擎進行了
的重構,使之能解釋更多的wml標記,并繪制出來。
3. 今天修改了日志輸出方式。這樣更易于調試。
4.
今天下午陪女朋友去逛了下街,廣州今天下雨,回來把一些想好了,但確未能實踐的做了下,感覺還不錯,WapPage重構的差不多了,Kxml解釋引擎也差
不多了?,F在忙于下載那些wml文件進行本地調試,還出差一個下載進度條,本想做一個ajax常用的進度的,不過苦于沒有gif圖片分割,而我又對gif
不熟悉。哈
5. 功能修正了許多。
5月18日,
6. 今天的任務是重點重構UI,要求是,每個UI都能記住自己的位置
7. 重點重構WapPage這個UI,使之可以管理其他UI部件
5月16日,
1. 發現了kxml解釋引擎在解釋wml時候的一個bug,詳細看源代碼
2. 重構了StringPart UI組件,使之可以自動換行。這個功能已經重構完畢
3. 重構WapPage部件,這個部件很關鍵,是把所有的Part UI組裝起來,所以說這個部件也是所有Part UI的Manage,設計的好,可以很容易做好統一管理,事件處理,資源釋放跟繪制管理等
4. 發現了一個很嚴重的bug,為什么我用kxml解釋wml的時候,會對一個tag重復的解釋兩次呢。找到問題的所在了,這個并不是kxml的bug,而是自己的疏忽,把函數放錯了位置?,F在問題解決了




Wml代碼:
主頁xml 代碼
- xml version="1.0"?>
- >
- <wml>
- <card id="index" title="饒榮慶">
- <p align="center"><BIG color="d4df">爬蟲工作室<!--</span-->BIG><!--</span-->p>
-
- <p align="center"><a > 3g <!--</span-->a><!--</span-->p>
- <p align="center"><a > [WAP中國]<!--</span-->a><!--</span-->p>
- <p align="center"><a > 空中網<!--</span-->a><!--</span-->p>
- <p align="center"><a >Wap帝國<!--</span-->a><!--</span-->p>
- <p align="center"><a > 巴掌<!--</span-->a><!--</span-->p>
-
-
- 此瀏覽器是我個人一個比較完整的作品,<br/>
- 為此我花了很多心血啊,主要是用來交流之用,<br/>
- 需要交流的朋友跟我聯系,<br/>
- 我的qq是43686904 <br/>
- 還有很多需要完善的地方<br/>
-
- <a href="local://help.wml">》幫助<!--</span-->a>
- <!--</span-->card> <!--</span-->wml>
xml 代碼
- xml version="1.0"?>
- >
- <wml>
- <card id="index" title="幫助">
- <p align="center"><BIG color="d4df">幫助<!--</span-->BIG><!--</span-->p>
-
-
-
- 這個瀏覽器的功能簡單,實用,個人很喜歡他,推薦給大家<br/>
- 為此我花了很多心血啊,主要是用來交流之用,<br/>
- 需要交流的朋友跟我聯系,<br/>
- 我的qq是<u color="DDFF">43686904<!--</span-->u> <br/>
- 我的電話是:<a href="wtai://wp/mc;13588888888">13588888888<!--</span-->a><br/>
- 還有很多需要完善的地方<br/>
- <a href="local://main.wml">》返回上一級<!--</span-->a>
- <!--</span-->card> <!--</span-->wml>
以后的一些文章我將會解釋我是怎么樣進行重構的,重構的過程是很快樂的。哈
下面還是圖片
繼續帖些圖出來

這個是今天完善了一個下載wml跟解釋wml的進度條,在頂部黃色的那個部分

。
繼續貼圖
下面是打開wap中國網站的截圖


這個是3G門戶圖片
圖片發來發去就是這些,程序開發的工作也還沒有結束,但把程序開發好了,并運行一段時間沒有內存溢出的時候,再讓大家玩下。哈
1. 今天重構WMLParser,使之不已mainform耦合。經過20多分鐘的努力終于重構完畢這個方面的功能
2. 下面可能要設計一個把wml轉換成string,用于保存網頁的功能,比如把string保存到rms中
3. 網上看了下,順便就整理下手機的各個參數的支持..
4. 終于搞定了系統屬性的查看,發現程序運行一段時間后,內存不段上升.確實是有內存瓶頸,得努力改進
明天跟以后的時間打算設計一個文本解釋引擎,就是從文本中解釋然后再繪制成控件,主要是用來保存網頁