项目的由来
去年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解释引擎也差
不多了。现在忙于下载那些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,而是自己的疏忽,把函数放错了位置。现在问题解决了
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 href="http://wap.3g.net.cn/"> 3g <!--</span-->a><!--</span-->p>
- <p align="center"><a href="http://wap.wapcn.net/"> [WAP中国]<!--</span-->a><!--</span-->p>
- <p align="center"><a href="http://wap.kongzhong.com"> 空中网<!--</span-->a><!--</span-->p>
- <p align="center"><a href="http://wap.dwap.cn/">Wap帝国<!--</span-->a><!--</span-->p>
- <p align="center"><a href="http://wap.bazhang.com"> 巴掌<!--</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. 终于搞定了系统属性的查看,发现程序运行一段时间后,内存不段上升.确实是有内存瓶颈,得努力改进
明天跟以后的时间打算设计一个文本解释引擎,就是从文本中解释然后再绘制成控件,主要是用来保存网页