android ndk编译自己的webkit

android本来自带了webkit浏览器,但是要对其进行custom就需要android源代码才行,

但是在没有源码的情况下,那么就需要用到ndk了,比如,我是在xoom上做custom webkit的。
虽然ndk提供的库很少,而且没有skia,但是好在有bitmap,这样显示慢了点,没有硬加速,但不是不可能。
webkit需要的第三方库,freetype,png,jpeg,sqlite3等虽然android源码中有,但是ndk没有开放,
因此所有的第三方库,freetype,png,jpeg,sqlite3,cairo,curl,fontconfig,pixman,iconv等
都需要用ndk cross-compile成静态库,然后链接到最终的动态库中。
选择iconv是icu太大,而且没有多语言的需求,选择cairo+pixman是skia的移植性不好,而且cairo支持很多种backend。
编译第三方库需要用到autoconfig,ndk中有如何生成交叉编译链的文档,然后在configure时使用这个工具链就可以了,
但是android用到的是bionic库,因此会有很少的地方需要修改,有些库也不能生成test程序,但是静态库是没问题的。
利用ndk生成的交叉工具链,在加上webkit自带的cmake编译系统,生成webkit的动态库是没有问题的,
当然是webkit的内核,而且有些平台相关的部分代码需要修改,但是只要是以linux平台为基础,修改还是很容易的,
我移植的webkit是先移植到linux平台上,然后移植到android平台上的,所以修改相对少了很多,
但是修改大多都在WebCore/platform下,在选择了的平台相关库后,做相应的配置和修改,
其次是在WebKit目录,这个主要是支持和使用WebCore,因此在需求不是整个浏览器,而只是正常地显示网页时,
还是可以写的比较简单的。

猜你喜欢

转载自blog.csdn.net/wzm012/article/details/7073613