0x00. 为何不直接使用内置的WebView组件?
Android中的WebView组件,在4.4以前的版本是WebKit的内核,4.4以后才换成chromium的内核。而且不同版本之间运行的效率也参差不齐,适配问题很让人头疼。因此考虑用第三方webview是个不错的选择。
0x01、有哪些第三方WebView可供选择呢?
方案1:Crosswalk
Home · crosswalk-project/crosswalk-website Wiki · GitHub
优点:各种流畅、强大,静态集成
缺点:体积过大,打包后的APK要48M左右,这个问题有点致命
解决思路:使用Crosswalk的精简版 crosswalk-lite(此版本不是官方主推,更新也不频繁)
Crosswalk Lite
1533270141(1).png
可以看到,体积确实小了很多,但是,请注意这段话:
1533270261(1).png
Lite仅支持x86和ARM的32位版本。 尚不支持x86_64和ARM64。所以,如果想适配64位的Android机,此方案只能舍弃。
接下来我们再看看方案2
方案2:腾讯TBS X5内核webview
优点:体积小,可以动态集成,静态集成,而且APP接入TBS后可以共享使用微信,或者手机QQ,QQ浏览器的X5内核
缺点:首次安装APP后第一次启动时X5内核总是加载失败(手机中已经安装了微信和QQ也不行,直接运行官网的demo也是首次加载失败),kill掉程序后再次启动就好了(这个问题有人已经在官网反馈了,但是官方没有给出解决方案)
集成可以动态集成(启动APP后再开始下载X5内核)和静态集成(X5内核一起打包进APK,不需再次下载)
0x02. 动态集成TBS(studio)
A. 获取TBS
去官网下载TBS的SDK文件,选择第一个(完整版)即可,目前是v3.6.0.1315版本,下载后解压文件如下:
1533273651(1).png
其中,studio版的demo是module, 不能直接运行,如果想跑起来,需要以module添加进某个项目中再运行这个module
B. 新建项目
新建一个studio的空项目,把解压SDK后的jar包文件放在libs目录下,并导入,如图:
1533274296(1).png
C. 集成TBS
把 SDK接入示例-Android Studio.zip 解压,把main目录下的jniLibs文件夹整个复制到自己的项目的main目录下,如图:
1533275152(1).png
x5暂