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




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 > 空中網(wǎng)<!--</span-->a><!--</span-->p>
- <p align="center"><a >Wap帝國<!--</span-->a><!--</span-->p>
- <p align="center"><a > 巴掌<!--</span-->a><!--</span-->p>
-
-
- 此瀏覽器是我個人一個比較完整的作品,<br/>
- 為此我花了很多心血啊,主要是用來交流之用,<br/>
- 需要交流的朋友跟我聯(lián)系,<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>
-
-
-
- 這個瀏覽器的功能簡單,實(shí)用,個人很喜歡他,推薦給大家<br/>
- 為此我花了很多心血啊,主要是用來交流之用,<br/>
- 需要交流的朋友跟我聯(lián)系,<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>
以后的一些文章我將會解釋我是怎么樣進(jìn)行重構(gòu)的,重構(gòu)的過程是很快樂的。哈
下面還是圖片
繼續(xù)帖些圖出來

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

。
繼續(xù)貼圖
下面是打開wap中國網(wǎng)站的截圖


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