`
wuhua
  • 浏览: 2115497 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

重构Wap Explorer 使之可以成为一个商业产品?

    博客分类:
  • J2ME
阅读更多

项目的由来

去年10月份左右,个人开发了一个足球即时软件,在此构建的一个ui,加上一些解释wml的一些项目,决定把两者组合起来,开发一可用的浏览器,--- 这就是最此的想法。

经过大概一个月左右时间实现了下,然后发布出来,但这个浏览器还不是一个可用的东西。

这个就是为什么有这个开发日志的由来,我想再接下来的时间里,对它进行二次开发,进行重构。

这篇文章开始的名字是:
重温Wap Explorer之主页从wml构建
想来没碰j2me也有好几个月了,很是想念它,所以就动用了这几天的时间来重新构建一个主页出来,以前Wap Explorer的主页完全是构建一个class,然后在这个class里面添加那些控件显示出来的,
这几天我也不停的重构wml解释引擎,跟wap UI部件,昨天终于把主页重构完毕,发个帖出来,让大家欣赏下。也算是报答各个网友的关心。

现在我把文章的名字变了下,改成重构Wap Explorer 使之可以成为一个商业产品?,之所以加个?号,是因为一个成熟的商业产品并不是想像的那么简单。
不过有一点是可以肯定的,那就是每天不断的重构,久了,一些东西就会显现出来,很多不明朗跟不明白的东西都会跑出来,这是一件很有趣的事情。
以后我会以开发日志的形式更新这个帖子,以后的日志就不写到这里了,直接跟帖,有兴趣的朋友可以在这里讨论,砸砖。
我很希望看到这样的情况发生
先看看图片,
然后再看看那些主页跟帮助的wml










Wml代码:

主页xml 代码
  1. xml version="1.0"?>
  2. >
  3. <wml>
  4. <card id="index" title="饶荣庆">
  5. <p align="center"><BIG color="d4df">爬虫工作室<!---->BIG><!---->p>
  6. <p align="center"><a href="http://wap.3g.net.cn/"> 3g <!---->a><!---->p>
  7. <p align="center"><a href="http://wap.wapcn.net/"> [WAP中国]<!---->a><!---->p>
  8. <p align="center"><a href="http://wap.kongzhong.com"> 空中网<!---->a><!---->p>
  9. <p align="center"><a href="http://wap.dwap.cn/">Wap帝国<!---->a><!---->p>
  10. <p align="center"><a href="http://wap.bazhang.com"> 巴掌<!---->a><!---->p>
  11. 此浏览器是我个人一个比较完整的作品,<br/>
  12. 为此我花了很多心血啊,主要是用来交流之用,<br/>
  13. 需要交流的朋友跟我联系,<br/>
  14. 我的qq是43686904 <br/>
  15. 还有很多需要完善的地方<br/>
  16. <a href="local://help.wml">》帮助<!---->a>
  17. <!---->card> <!---->wml>

 

xml 代码
  1. xml version="1.0"?>
  2. >
  3. <wml>
  4. <card id="index" title="帮助">
  5. <p align="center"><BIG color="d4df">帮助<!---->BIG><!---->p>
  6. 这个浏览器的功能简单,实用,个人很喜欢他,推荐给大家<br/>
  7. 为此我花了很多心血啊,主要是用来交流之用,<br/>
  8. 需要交流的朋友跟我联系,<br/>
  9. 我的qq是<u color="DDFF">43686904<!---->u> <br/>
  10. 我的电话是:<a href="wtai://wp/mc;13588888888">13588888888<!---->a><br/>
  11. 还有很多需要完善的地方<br/>
  12. <a href="local://main.wml">》返回上一级<!---->a>
  13. <!---->card> <!---->wml>


以后的一些文章我将会解释我是怎么样进行重构的,重构的过程是很快乐的。哈

分享到:
评论
19 楼 iamnxh 2008-04-24  
是不是现在显示不了图片呀
18 楼 超级莱鸟 2007-09-12  
最近我也想搞一个wap浏览器,wuhua兄弟,我们可以研究一下啊。

现在有一个UCWEB好像不错啊,争取整一个超过他们.
17 楼 zykun 2007-07-17  
关注一下!对这个很感兴趣
楼主还在广州上班吗
16 楼 wuhua 2007-05-25  
项目开发日志<br/>
5月24日,<br/>
1.    今天还是重点优化下性能问题,发现怎么重构,性能都是那样的,现在解决的方法放到了电脑上IE的常用解决办法,就是有多少就绘制多少,而不是让程序去把所有UI都绘制好了,在显示出来。在构建一个Wapage页面build的时候也是会出现程序运行速度慢的问题。<br/>
2.    这里终于找到了解释慢的原因,其实并不是wml解释引擎慢,只是因为在解释的过程中一边下载网络数据,所以慢了点,不过对于手机来说,问题的瓶颈就在于绘制UI跟创建UI的速度上了<br/>
3.    关于假设如果先绘制出40个控件的话,也会出现一个问题那就是时间响应比较慢<br/>
4.    关于内存溢出一直没有找到解决办法,不知道Runtime.getRuntime().freeMemory();这个方法有没有用<br/>
5.    重构Http的相关类<br/>
6.    关于编码问题,因为你获取到InputStream读取出来的是乱码,你应该构造一个InputS
15 楼 wuhua 2007-05-24  
剑 事 写道
手机的无线如果能绕过 联通移动
手机站点会发展的更好

目前来讲不显示,
因为人家投入了大量的钱去搞基础建设,不捞点,对不住自己。
14 楼 剑事 2007-05-24  
手机的无线如果能绕过 联通移动
手机站点会发展的更好
13 楼 wuhua 2007-05-24  
Norther 写道
我估计再过1年大部分浏览器都可以支持HTML,WML只是个过渡技术,快到头了

是啊,不过我想,手机浏览器支持是肯定的,不过大部分站点还是采用wml的形式。
12 楼 Norther 2007-05-24  
我估计再过1年大部分浏览器都可以支持HTML,WML只是个过渡技术,快到头了
11 楼 wuhua 2007-05-24  
剑 事 写道
一个是手机浏览器越来越强*html了
一个是wap面临两大运营流氓。

所有有点奇怪 呵呵

看的出楼主好像对wap很悲观啊。
现在Wap不是也出了个2.0吗,表现形式也很丰富了,可以直接支持css,xhtml等。手机这块还是很有作为的
10 楼 janla 2007-05-23  
看了.搂主得代码。写得比较乱。确实应该重构。
9 楼 剑事 2007-05-23  
一个是手机浏览器越来越强*html了
一个是wap面临两大运营流氓。

所有有点奇怪 呵呵
8 楼 wuhua 2007-05-23  
剑 事 写道
你那WAP 业务还很好?

怎么问起这个来了。
现在wap普遍是寒动冬
7 楼 剑事 2007-05-23  
你那WAP 业务还很好?
6 楼 wuhua 2007-05-23  
项目开发日志
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,而是自己的疏忽,把函数放错了位置。现在问题解决了
5 楼 wuhua 2007-05-23  
由于word黏贴到这里有问题,<br/>
所以看下一帖
4 楼 wuhua 2007-05-23  
继续贴图<br/>
下面是打开wap中国网站的截图<br/>
<img src='http://wuhua.iteye.com/upload/picture/pic/3454/abe40160-97d9-46d1-b7cb-8f030d1fb0fc.jpg' alt=''/><br/>
<br/>
<img src='  http://wuhua.iteye.com/upload/picture/pic/3453/5ca04a58-7d50-46c9-8c9e-34703f94f27d.jpg' alt=''/><br/>
<br/>
这个是3G门户图片<br/>
<img src='  http://wuhua.iteye.com/upload/picture/pic/3483/565d54ea-c61f-41a6-b421-2159ff0e7aa0.jpg' alt=''/><br/>
<br/>
图片发来发去就是这些,程序开发的工作也还没有结束,但把程序开发好了,并运行一段时间没有内存溢出的时候,再让大家玩下。哈
3 楼 Puras 2007-05-22  
看了这个
燃起了我对J2ME的兴趣
2 楼 wuhua 2007-05-22  
继续帖些图出来<br/>
<img src='http://wuhua.iteye.com/upload/picture/pic/3455/c6cc7efa-45ae-49f6-b9cc-90440c7e1a30.jpg' alt=''/><br/>
<br/>
这个是今天完善了一个下载wml跟解释wml的进度条,在顶部黄色的那个部分。<br/>
<img src='http://wuhua.iteye.com/upload/picture/pic/3456/b7ef2d33-6e7a-48cc-84c3-5b8836fbff09.jpg' alt=''/>
1 楼 orientalsun 2007-05-21  
给老大发了信就加我了

效率真高啊

以后要多请教了

呵呵

相关推荐

    java开源包4

    j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF...

    java开源包11

    j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF...

    java开源包1

    j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF...

    java开源包2

    j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF...

    java开源包3

    j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF...

    java开源包6

    j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF...

    java开源包5

    j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF...

    java开源包10

    j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF...

    java开源包8

    j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF...

    java开源包7

    j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF...

    java开源包9

    j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF...

    java开源包101

    j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF...

    Java资源包01

    j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF...

Global site tag (gtag.js) - Google Analytics