用Crosswalk的XWalkView做混合式App

因?yàn)闃I(yè)務(wù)需要,要開發(fā)一個(gè)顯示特定網(wǎng)頁的混合式App,用Android原生的WebView做了一版,功能可用,但是在部分設(shè)備上效果極差,因?yàn)閃ebView使用的瀏覽器內(nèi)核與系統(tǒng)環(huán)境有關(guān),為了保持效果一致性,找到了XWalkView。

Android瀏覽器內(nèi)核的問題

Android一直有WebView這個(gè)控件,但是這個(gè)控件在不同版本上使用了不同的內(nèi)核:

在Android4.4版本以前,使用的是基于androidWebKit的WebView。

從Android4.4版本起,換成了基于Chromium的WebView。

實(shí)際上,因?yàn)锳ndroid碎片化的問題,WebView在真實(shí)環(huán)境中的表現(xiàn)更加混亂,如果對(duì)混合式App中網(wǎng)頁部分的表現(xiàn)有嚴(yán)格的要求,就不得不考慮使用第三方的瀏覽器內(nèi)核。

Crosswalk的XWalkView就是目前比較受歡迎的一種第三方瀏覽器內(nèi)核。

Crosswalk和XWalkView

1.Crosswalk是一個(gè)開源的web引擎,官網(wǎng)地址

2.XWalkView是Crosswalk提供的webview,可用于替代系統(tǒng)原生的webview

如何引用

在app的build.gradle中,添加maven地址和complie

添加maven

打開maven中的地址,可以找到這樣一個(gè)目錄

https://download.01.org/crosswalk/releases/crosswalk/android/maven2/org/xwalk/xwalk_core_library/

打開后,可以找到xwalk的各個(gè)版本

maven中xwalk的各個(gè)版本

選擇其中最新的一個(gè),在app的build.gradle文件的dependencies中添加compile

添加compile

為了規(guī)避混淆,需要在proguard-rules.pro中添加keep

混淆設(shè)置

代碼示例

在layout的xml文件中,添加xwalkview控件

xml中使用xwalkview控件

在activity中,為xwalkview設(shè)置為允許運(yùn)行javascript和允許調(diào)試

打開js和調(diào)試功能

如果需要,自定義resourceclient和uiclient

自定義client

配置自定義的client

配置自定義client

加載url和webview的用法一致(最新版只需要url一個(gè)參數(shù),舊版本是需要兩個(gè)參數(shù)的)

加載url

另外,為了避免泄漏內(nèi)存,需要適時(shí)銷毀控件

適時(shí)銷毀控件

缺陷

安裝包體積會(huì)劇增40M+,因?yàn)樾枰颜麄€(gè)crosswalk瀏覽器引擎打包進(jìn)app里

其他框架

ChromiumView已經(jīng)過時(shí),基本不維護(hù)了

Tencent X5最近很受歡迎,準(zhǔn)備有時(shí)間研究一下。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,115評(píng)論 25 709
  • 對(duì)于許多人來說,閱讀、學(xué)英語、鍛煉身體都不是真正的剛需。而真正的剛需是--找借口。比如討論那些長(zhǎng)得好看的...
    耐心的獵人閱讀 280評(píng)論 0 0
  • 文|零露 十一月秋暮冬初時(shí)節(jié)。賞最最后的,霜葉紅于二月花??幢閷恿织B翠,落葉紛飛。 秋來秋去是自然規(guī)律。站在秋日暖...
    零露_清揚(yáng)婉兮閱讀 742評(píng)論 4 14
  • [本文為草稿,代碼中很多地方都還沒有仔細(xì)研究,等明天會(huì)補(bǔ)上更多的注釋] 這節(jié)課的關(guān)鍵就在于課程中提供的3段代碼,要...
    Lokvahkoor閱讀 376評(píng)論 0 0
  • 衛(wèi)星數(shù)量:GPS:32顆衛(wèi)星北斗:37顆 C/A碼GPS:碼長(zhǎng)1023北斗:碼長(zhǎng)2046
    NapoleonY閱讀 653評(píng)論 0 0

友情鏈接更多精彩內(nèi)容