关于跨平台浏览器

这几天折腾跨平台浏览器的技术框架,下面将相关技术抛砖引玉一下:

目的很明确,如何能够只使用一套代码,只需要拿到各个平台上去编译执行就可以得到各个平台的执行程序,这个跟java的“一次编译,到处执行”还是不一样,本文探讨的平台包括 window、mac、linux、android、ios五大平台。

浏览器内核

现在各种主流浏览器各种各样的内核引擎,在国内各个互联网巨头都开始涉足浏览器的领域,腾讯的TT,百度浏览器,360浏览器,搜狗浏览器,相信大家都用过。昨天看到一消息说chrome的全球使用量超过IE浏览器,但大多数地区的主要浏览器还是IE,在国内更是达到了70%左右。 作为程序员,大家一般都喜欢用chrome,使用mac产品的白领差不多就用safari了,这两款浏览器的内核都是使用了Webkit,是否优秀我不敢说,但是它是开源的。

WebKit是一个开源的浏览器引擎,与之相应的引擎有GeckoMozilla Firefox等使用的排版引擎)和Trident(也称为MSHTMLIE使用的排版引擎)。同时WebKit也是苹果Mac OS X系统引擎框架版本的名称,主要用于SafariDashboardMail和其他一些Mac OS X程序。下面这幅图是WebKit的架构图:

       

不仅需要开源的浏览器内核,还需要跨平台支持,而Qt在跨平台方面提供了很好的支持。Qt Web支持Windows MacOS X Linux的版本,而且开源的。虽然 Qt Web没有华丽的界面,但是功能一点都不简单,基本拥有其它浏览器常见到的功能,内置广告拦截功能,开源自定义规则,而且 Qt Web还很重视个人隐私,浏览器提供了隐私浏览功能。下面是QtWebkit模块的框架图(网上复制的):

在下面三层使用的是C++code去开发,在application层,Qt就可以支持最常用的网页设计三剑客 HTML/CSS/Javascript去开发,这样将可以使数量众多的网页开发人员开发Qt应用成为可能。

这两张图可以看出Qt-webkitwebkit的区别:

1TextHandlingPaintingNetworking采用的Qt的内核

2、更加容易使用Qt API

Qt的集成webkit的优势:
1
、快速创建包含实时网络内容和服务的应用程序
2
、在一个应用程序中集成网络和本地内容
3
、可以在不同平台上运行开发的web应用。

 

 浏览器内核(移动平台支持)     

虽然Qt目前并没有对官方支持Android和ios平台的的支持,但是一些开源社区已经将Qt的代码移植到Android和ios上,特别是Android社区,已经将Qt对安卓的支持集成到QtCreator(Qt开发IDE)上,IOS平台上的集成也是指日可待。详情请访问:

Qtfor Android配置(Ubuntu11.04

http://blog.csdn.net/ak47zhangzhiwei/article/details/6566209

设置qt-android开发环境

http://thomasyrq.blog.163.com/blog/static/304628442011231950300/

android-lighthouse

http://code.google.com/p/android-lighthouse/

Qt/qt-iphone-clone

http://gitorious.org/+qt-iphone

http://www.myexception.cn/iphone/351326.html

https://gitorious.org/~ibingow/qt/ibingows-qt-ios-plaszma

 

 Qt浏览器开发环境搭建


Qt开发环境和开发工具下载地址:

http://qt.nokia.com/downloads-cn

在各大平台直接下载QtSDK:完整的开发环境即可。


 

Mac、Window、Linux平台编译

       这三个PC平台Qt的支持都比较强大,直接从上文中下载对应平台的QtSDK进行安装,在QtCreator中直接编译浏览器代码,即可产生对应平台的浏览器可执行程序。当前浏览器的代码在linux和Window平台对中文、图片都能支持较好,在Window平台需要加入Qt程序对于插件的编译支持。三个平台的都可以加入对应的flashplayer对应的版本加强对视频解码的支持。

Android平台的编译

Android平台的支持主要是由开源社区支持,其编译过程比较麻烦。首先是操作系统的选择,建议没有Ubuntu环境的开发人员装虚拟机。

第一步:安装antjdk

sudo apt-get install ant

sudo apt-get install openjdk-6-jdk

这一步需要特别注意,由于后面用ant进行打包的时候要用到java环境,装ant会默认安装openjdk环境,由于编译的版本比较高,ant打包的版本需要一直,需要从官方下载最新版本安装配置,然后切换系统中java环境的默认版本

 

步:安装necessitasSDK

 1)到necessitas下载页(http://sourceforge.net/projects/necessitas/files/)下载最新版SDKinstaller

2)对下载的installer加运行属性并运行:

chmod +xnecessitas-0.1.1-Linux-x86-Install

./necessitas-0.1.1-Linux-x86-Install


安装完之后:/root/NecessitasQtSDK文件夹下。

root@ubuntu:~/NecessitasQtSDK# ls

Android           components.xml       SDKMaintenanceTool.dat

android-ndk-r6b  InstallationLog.txt SDKMaintenanceTool.ini

android-sdk      QtCreator

apache-ant-1.8.2 SDKMaintenanceTool

 

第三步:安装Android支持库

root@ubuntu:~/NecessitasQtSDK# cd  android-sdk/tools/

root@ubuntu:~/NecessitasQtSDK/android-sdk/tools#./android


后记:zaiQt的实例代码里就有浏览器,建议大家去开源社区下载基于Qt写的浏览器来编译,总的说来在PC平台的编译都比较简单,费工夫的是Android平台,开始在window平台弄,搞了半天发现里面编译好的Qt库都是.so后缀的,这是linux中编译的,所以只有安装Ubuntu的Android开发环境,至于IOS目前已经有人在做开源的支持,希望能够早点弄出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值