看到这个标题,您可能会觉得奇怪,android浏览器本来就是基于webkit的,而且android还提供了一个非常方便的WebView及相关类。系统的浏览器当然稳定而且强大,但在某些情况下,可能还是不够,比如android浏览器不支持wml,也不支持html5 video。其实webkit本身是支持的,只不过android没有打开编译开关。另外一个原因,就是android中使用的webkit内核比较老,对于html5的支持比较差。因此萌发了自己编译libwebcore,作为独立的应用进行开发。这样做的一个缺点就是和android平台相关了,没有办法做到2.1/2.2/2.3通用。
首先说说开发环境,webkit选择android4.0版本包含的webkit。构建系统选择的是android的源码构建系统。这样选择也是为了选择一个稳定的版本,不在build system上花费太多的时间。开发机环境为ubuntu 11.10,64位系统。
阅读webkit android的代码,我们可以知道,实际上浏览器的代码包括两部分:一部分是java代码,是对webkit的一个封装,提供方便使用的WebView及相关类;一部分是c++代码,也就是webkit代码(包括WebCore和JavaScriptCore,在android 2.2之后,google用V8取代了JavaScriptCore),编译成so,供Java侧代码使用。
分析webkit的代码接口,主要需要做如下工作:
1. WTF库的移植
2. WebCore platform代码的移植
3. WebCore核心代码的移植
4. WebCore Support代码的实现
5. WebKit JNI
6. WebKit Java封装
移植成功了吗?
@呵呵
非常惭愧,只是在业余时间捣鼓,到现在才开了个头
请问移植成功了吗?可以提供一个移植的思路?谢谢!
Android WebKit支持HTML5 Video啊
你好。我有类似需求,看到UC浏览器是编译了一个libBrowserShell_UC.so,strings了一下估计也是webkit修改的。看到本篇说到无法在2.1/2.2/2.3上通用,不知道UC是如何解决的?
没有在UC工作,也不知道他们是怎么做的。如果不使用系统的第三方c/c++库,比如skia等,还是可以做到2.1/2.2/2.3上通用的。
对,现在的版本已经支持的比较好了
由于后来转向chromium移植了,没有花功夫在这上面了