起因
項(xiàng)目中要用到webview進(jìn)行上傳文件瑰谜, 由于Android自身的原因有咨,4.4.X的版本税灌,都無法實(shí)現(xiàn)上傳功能乘盼,于是找到了crosswalk. crosswalk基于Chromium. crosswalk-lite相對(duì)體積比較小崇堰,精簡了一些功能沃于,但也基本夠用,更適合移動(dòng)設(shè)備,雖然不是官方主推,但是更新頻次也挺高 于是就用它了
crosswalk有兩種使用模式. Shared Mode和embedded Mode. 對(duì)于crosswalk-lite只支持embedded Mode.
- Shared Mode: 把包含核心so文件的apk包(20多M)放到指定的http服務(wù)器上揽涮,crosswalk初始化時(shí)自動(dòng)下載這個(gè)apk抠藕,然后需要用戶手動(dòng)安裝這個(gè)apk包(可以稱之為框架),非常類似于dotnet的framework.安裝完成后crosswalk變成一個(gè)系統(tǒng)級(jí)的服務(wù)。如果你有多個(gè)app都用crosswalk蒋困,這時(shí)shared的好處才會(huì)體現(xiàn)出來盾似,因?yàn)樗恍枰惭b一次就能給多個(gè)app提供服務(wù)了。這樣生成的apk體積比較小雪标,對(duì)于移動(dòng)端是個(gè)不錯(cuò)的方案. 但是由于不支持lite,下載的apk包是crosswalk的大包零院,體積巨大。
- embedded Mode:把核心so文件(9MB)放到raw文件夾中村刨,打包到apk里告抄。這樣的結(jié)果就是apk變得很大,難于部署.
折中方案
參考自crosswalk之"瘦身"秘籍 使用shared Mode方式嵌牺,當(dāng)然你用lite本來也沒得選打洼。不要把核心的so文件放到raw中打包,把這文件放到http服務(wù)上去逆粹,使用時(shí)候再下載募疮。基本是結(jié)合兩種模式的混合體了僻弹,這樣打包的apk只有1MB阿浓,在需要使用crosswalk的時(shí)候再下載或者后臺(tái)下載均可. 下載9MB的文件對(duì)于一個(gè)非游戲類的app還是挺大的,具體要看應(yīng)用場景了蹋绽。
那個(gè)so的core文件是用lamz壓縮的芭毙,我放到百度網(wǎng)盤去了(http://pan.baidu.com/s/1nu0abH3) ,把這個(gè)文件放到你的一個(gè)http服務(wù)器上就可以用我的demo試驗(yàn)了