achellies/ISeeBrowser
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
blackfog:
我移植的基于iPhone Safari同一引擎WebKit的浏览器iSee,请试用:
1、移植起因
03年开始玩PDA,IPAQ 3970玩了3年多。很多时候用PDA看书,可惜一直无法看HTML
文件,用起来很别扭。04年的时候尝试移植过一份纯文本的浏览器,基于Linux下面的一款,
移植了一下感觉效果比较差,心就淡了下来。05年的时候开始使用了Haali Reader,感觉
不错,支持HTML、CHM等,就不想再搞下去了。06年的使用在苹果开发站闲逛,发现了
WebKit(那时候叫JavaScriptCore/WebCore,Safari引擎),感觉不错,研究了一下,但
很多代码是Object-C,没有时间搞那个,如果移植到C++,难度也比较大。07年6月份在网上
乱逛,无意中发现了WebKit.org,就是Safari引擎的开源代码,就来兴趣了,当是闲暇打发
时间,就开始移植,当然移植的平台就是WinCE。
2、版本历程
2007年6月底完成了第一个Windows版本,采用了Cairo和Windows字体显示(未采用Glyph,
因为WinCE平台不支持该类函数),全屏刷新,显示效率比较低。
2007年7月基于freetype2字体引擎实现了局部刷新的版本,速度还比较快。
2007年7月开始向WinCE与移植,在网上狂搜Cairo的WinCE版本,信息很少,移植搁浅,曾
一度想放弃。
2007年8月下定决心,对Cairo进行了改造,支持了WinCE。
2007年9月第一个WinCE版本移植完成,显示效果非常好,准备在国庆推出第一个试用版本。
2007年10月,国庆的时候发现还有很多要做的工作,版本推迟发布。
2007年10月,工作变动,移植工作只能零零星星的进行,版本一直无法发布。
2007年12月,进行了引擎版本更新,拟修正后于元旦发布版本。在发布的时候发现,虽然
显示效果很好,但是显示速度比较慢,怕发布后被骂,准备研究一下改善刷新速度。
2008年1月,开始研究网上的一些图形显示库,如SDL等,但是一直没有合适的可以替代
Cairo库的矢量图形显示库。静下心来研究Cairo,因为Cairo是基于24/32位位图的,而WinCE
是16位位图显示,在从Cairo位图刷新到WinCE显示设备时,需要转换,耗费了了大量时间。
花了2个星期的时间对Cairo进行改造支持了16位显示,将位图拷贝时间从20ms以上降到1~2ms。
2008年3月,春节后工作忙了起来,移植工作搁浅,中间几个月只能零散的做点工作。
2008年6月,再次更新了引擎版本,开始做移植的最后工作,如常规控件按钮、单选框等
改造等;取消了libxml而改用expat。
2008年8月,完成广告屏蔽(主要是window.open的非主动点击屏蔽),Cookie、Cache、
读取页面失败提示等等。
2008年8月24日,发布第一个试用版本。【今天比较有纪念意义:奥运会闭幕,儿子满百日(嘿嘿)】
2010年4月10日,由achellies改进各个工程(*.vcproj)个配置,以便在window端以及wince5.0上(PBTest(armv4i)版本) 上成功编译并运行。
3、版本开发说明
移植和开发了以下库:
cairo
expat
freetype
icu
libcurl
libiconv
libjpeg
libpng
libxml
libxslt
pthread
sqlite3
zlib
wceshunt【自己开发的,实现对部分标准C库和部分Win32函数的模拟】
4、程序配套说明
版本包括:
主程序iSee.exe
配置文件iSee.xml【主页、默认显示语言、内存缓冲大小、广告拦截、字体、菜单显示多国化、Proxy等配置】
ICU资源:icudt38l.dat
字体文件:sunglobe.ttf【TrueType字体文件,可以在配置文件配置为任意TrueType字体】
5、使用说明
首先在iSee.xml配置字体文件路径,缺省为(FILE=""时)与应用程序相同目录下的sunglobe.ttf。
缺省启用10.0.0.172:80的代理。
其他参看配置文件说明。
放置到任意文件,启动iSee.exe。
6、版本缺陷
占用内存稍大(受此限制仅提供同时打开4个网页)。
显示速度稍慢。
不支持下载进度条显示。
WLAN支持的比较好,CMWAP由于费用问题测试的较少,可能存在问题。
Cache和Cookie实现的比较简单,可能还存在问题。
WM5启动应用很慢,目前还没有想到解决办法(是不是可执行文件太大了)。据说WM5的文件操作本来就慢,未作验证,请有经验的P友支持。
WM6未作验证。
7、版本后续改进
类似Maxthon的广告屏蔽,就是可以让被屏蔽窗口再次弹出。
内存调度、占用优化。
显示速度改进。
文件下载进度条。
WM5/6启动速度改进。
Cache和Cookie优化改进。
HTTPS支持。
类似Safari的网页缩放。(目前已经支持,未作验证,暂时屏蔽。)
Flash支持。
Netscape插件支持。
8、开源说明
拟在开源网站开源所有代码,本程序所使用的库的使用请遵照各自的使用限制。
此处以源码包不定时更新。