前言
近期一直忙Android ChromiumWebview的裁剪,简单说就是减少Webview相关文件的大小。有同学可能会疑惑,现在智能终端空间越来越大、内存也越来越大,比如现在手机没有64G ROM/4G RAM,都不好意思和别人打招呼,做裁剪的意义何在?说起来都是泪,总有些行业会为了省下几元钱而死磕,省下来才能生存啊。比如我们接到的任务是将Android 5.1系统裁剪到100M,因为设备只有256M ROM。是的,没看错,要将Android系统裁剪到100M,要知道光一个libwebviewchromium.so就去了30M,我接到的任务就是裁剪ChromiumWebview。
方案选择
Android浏览器从Android 4.4开始才采用chromium/blink引擎,在这之前的版本,采用的是WebKit引擎。相较于chromium,WebKit引擎要小得多,比如在Android 4.3中,WebView相关的组件:libwebcore.so的大小为7.2M,libchromium_net.so的大小为1.7M,总大小大约9M。而Android 5.1中,libwebviewchromium.so大小有30M。一种可能的选择就是使用WebKit引擎,虽然WebKit引擎能力有些弱,但应付普通的网页、实现定制业务还是绰绰有余(毕竟还有那么多Android低版本存在,网站不可能采取激进策略,不兼顾这些老的终端)。但在调研过程中发现,要把WebKit移植过来,还是很费力的一件事情。采用最新的WebKit肯定不现实,因为WebKit代码树上并没有Android的移植代码,从头进行移植工作量太大,对于我们这样的