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程序,但是静态库是没问题的。