Android開發小技巧之不再使用原生的WebView了

禁言發表於2016-09-22

前言

先來說說Android官方的WebView的版本差異,在Android 4.4以下(不包含4.4)系統WebView底層實現是採用WebKit作為核心,而在Android 4.4及其以上Google 採用了chromium作為核心,雖然是API上面沒有什麼變化,但是卻非常的坑開發者。雖然說更換了chromium之後,是增加了對H5等的一些友好支援,但是還不夠啊,各種各樣的記憶體洩露。我也是醉了。而且這種記憶體洩露還是沒辦法解決的。

剛開始的時候啥都不懂,認為WebView這那點東西,簡單。慢慢的發現:哦,原來webView也是要清除和銷燬的啊。哦,原來是WebView內部記憶體洩露了啊,沒辦法只能將WebView放進一個單獨的程式了。我以為這樣就能解決我的問題。

誘因

當時的問題是這樣的,我們專案需要用WebView來展示一個url,裡面呢,是web版的百度地圖。結果就是IOS正常顯示,我這邊就是不行,於是我各種重寫,各種注入JS。最終還是失敗了。最後是在微信和UC中檢視這個URL,發現真神奇,竟然可以。不知道大家有沒有仔細觀察,不管是QQ還是微信,開啟URL的時候往下拉,都可以看到這樣的話”QQ瀏覽器X5核心提供技術支援”,於是我就在網上找啊找,終於找到了今天的主角”TBS騰訊瀏覽業務“。

介紹

下面來自官方的介紹


基於Android 5.0 WebView Blink核心(M37版本)適配定製優化,適配Android全部主流平臺,可以在所有Android手機上使用Blink的技術能力。TBS2.2具有更好的H5/CSS3支援和效能,視訊體驗、網頁瀏覽體驗有大幅提升,安全能力也有進一步優化。TBS2.2已經發布,將逐步在各客戶端中靜默升級,無需更新微信、手機QQ、QQ空間即可使用最新的TBS2.2Blink核心。


看到沒有,最強大的部分:

無需更新微信、手機QQ、QQ空間即可使用

雖說鵝廠比較流氓,但不得不說東西卻是很好用,而且免費,有木有。另外好像還有UC核心,好像是要收費來著,沒仔細瞭解。

使用

接入文件在官方有,就不寫了,免得有借鑑的嫌疑。不過我會在下面寫一些我自己的使用技巧。

QQ瀏覽器X5核心接入文件

常見問題見

技巧

  1. 在第一次用X5開啟URL的時候會很卡,而且有很明顯的卡頓。可以將demo中的初始化部分放到Application中或者服務中去搞,可以明顯提升哦。

最後

本來是不想寫這篇文章的,主要是昨天有個做java的朋友問我類似的問題,為什麼在iOS上面video標籤能夠正常播放,在Android上面就是不行,他已經調了很久的JS,谷歌都沒有解決。很明顯,他這是被甩鍋了,Andrid把鍋甩給了後臺。最後我告訴他接入這個核心,於是乎問題解決了。

作為一個開發者,拿著一個WebView,真心搞不過人家專門做瀏覽器的。

最後附上原始碼
原始碼


相關文章