文章用來記錄筆者接入X5瀏覽器的過程,和排查一些問題,希望能幫到大家,有問題可以一起探討。當前TBS SDK版本v3.1.0.1035
目錄
- TBS SDK快速接入
- TBS X5 Core和System Core之間如何切換
1. TBS SDK快速接入
sdk接入應該不用多說了看官方文檔http://x5.tencent.com/tbs/guide/sdkInit.html 就可以了非常詳細。
sdk官方例子http://x5.tencent.com/tbs/sdk.html
接入完不要忘記添加混淆,否則打開app就會崩潰而且查找起來非常麻煩。
2. TBS X5 Core和System Core之間如何切換
這里才是今天討論的關(guān)鍵,我們在看官方文檔時http://x5.tencent.com/tbs/guide/sdkInit.html ,有一個步驟是這么寫的。
第五步、加載 x5內(nèi)核的操作方法
- 下載安裝TBSDemo到手機 點擊下載;
- 啟動 TBSDemo,等待幾秒鐘后看到提示框“x5內(nèi)核安裝成功,是否重啟”,此時點擊“重啟”;
- TBSDemo重啟后,當看到左上角顯示“x5 core:”,然后可進行下一步,否則請聯(lián)系我們;
- 卸載重裝您的App,保持手機網(wǎng)絡暢通,進入您的App的網(wǎng)頁場景,等待3秒后在手機設置里殺掉您的App,然后再次啟動您的App 進入網(wǎng)頁場景,此時您的App就可以使用x5內(nèi)核了;備注說明:
由于微信手Q下載X5內(nèi)核會碰到流控等限制,操作門檻較高,所以通過前三步可以快速實現(xiàn)將TBSDemo中攜帶的X5內(nèi)核部署到手機上。
看過這段文字內(nèi)心肯定是崩潰的,我要集成這個X5內(nèi)核還需要用戶下載一個TBSDemo這怎么行,而且操作還如此的復雜才可以下載X5內(nèi)核到本地,大家想想騰訊怎么可能搞一個這么傻X的SDK不被廣大開發(fā)者罵死嗎,其實SDK是通過共享使用用戶手機上微信、手機QQ、空間、QQ瀏覽器等軟件已經(jīng)下載好的X5內(nèi)核,其中微信、手機QQ、空間必須打開App等一下(下載X5內(nèi)核需要時間)或者打開過網(wǎng)頁才可以否則本地是沒有下載X5內(nèi)核的,相信現(xiàn)在的手機上98%以上都會有這幾個App吧,但是對于追求極致的程序員來說那2%的用戶會怎么辦呢,就會引出下面兩個問題。
1.app在下載X5內(nèi)核過程中使用WebView app會崩潰嗎,還是用系統(tǒng)的webview。
2.當下載下來的X5內(nèi)核不小心被刪除了怎么辦。
下面就來圖文講解一下X5內(nèi)核是如何下載到客戶端本地,如何加載到我們的App中的。
首先,手機上沒有安裝騰訊的任何軟件,微信,手Q等在SD卡的根目錄下不會出現(xiàn)tencent這個目錄如下圖:
53D36DB0-D726-4B67-8F20-A0564D979178.png
當下載了微信登錄進入微信在看這個目錄里面的結(jié)構(gòu),如下圖,出現(xiàn)了tbs這個文件夾
7A4E523C-7ED0-4E77-BD82-FE7BF1CD253C.png
進入tbs這個文件夾發(fā)現(xiàn)有com.tencent.mm這個文件夾,這個文件夾下有x5.tbs.org,這就是X5內(nèi)核了。
E2D2996F-4F28-45AE-99AC-74C719828DDF.png
B9E8335B-D521-4983-AD08-02A296651DF0.png
這個文件是因為我登錄了微信自動下載下來的,其他接入了X5內(nèi)核的app都會找到這個內(nèi)核加載到自己的app中防止每個接入X5內(nèi)核的app都去下載一份,如果沒有找到本地X5內(nèi)核的app就會在tencent/tbs/backup/ 目錄下創(chuàng)建自己的包名,在包名下面下載內(nèi)核,下載的內(nèi)核每個接入SDK的app都會使用。在正在下載內(nèi)核的過程中如果app想使用WebView會直接使用系統(tǒng)的WebView,當下載完成App下次啟動就會使用X5內(nèi)核了,所以說本地沒有X5內(nèi)核app也不會崩潰會使用系統(tǒng)的WebView。
還有如果不小心本地的X5內(nèi)核被刪除了怎么辦,我們首先刪除內(nèi)核在打開微信,或者我們的Demo,發(fā)現(xiàn)還可以使用X5內(nèi)核,這就可以想到肯定是第一次加載X5內(nèi)核的時候?qū)⑺截惖絘pp的系統(tǒng)目錄下了,咱們?nèi)ハ到y(tǒng)目錄(/data/data/com.example.test_webview_demo/)下看看猜測是否正確,如下圖
DAEDF431-A187-43F7-A2B9-996621CE3E1C.png
果然在系統(tǒng)目錄下有app_tbs目錄,由此可以推斷在app加載X5內(nèi)核的同事將他復制到了系統(tǒng)目錄,這樣一來無論sd卡目錄下是否保留著下載的內(nèi)核對于加載過的app來說是沒有影響的app會去的系統(tǒng)目錄找到內(nèi)核進行使用,影響的只是沒有加載過的app它們會重新下載內(nèi)核。
結(jié)論
1.可以放心的使用X5內(nèi)核SDK會非常智能的選擇使用X5內(nèi)核還是使用系統(tǒng)的內(nèi)核。
2.只要加載過X5內(nèi)核的app,內(nèi)核會加載到app的系統(tǒng)目錄和sd卡中的內(nèi)核沒關(guān)系。
3.接入完SDK不要忘記混淆。