Android-騰訊X5接入詳解與注意點

作爲與js交互的優化之一,今天講一下如何集成騰訊X5。
首先我們先了解一下TBS瀏覽服務:
###背景知識:
1. TBS(騰訊瀏覽服務)的優勢

  1. 速度快:相比系統webview的網頁打開速度有30+%的提升;

  2. 省流量:使用雲端優化技術使流量節省20+%;

  3. 更安全:安全問題可以在24小時內修復;

  4. 更穩定:經過億級用戶的使用考驗,CRASH率低於0.15%;

  5. 兼容好:無系統內核的碎片化問題,更少的兼容性問題;

  6. 體驗優:支持夜間模式、適屏排版、字體設置等瀏覽增強功能;

  7. 功能全:在Html5、ES6上有更完整支持;

  8. 更強大:集成強大的視頻播放器,支持視頻格式遠多於系統webview;

  9. 視頻和文件格式的支持x5內核多於系統內核

  10. 防劫持是x5內核的一大亮點

2. 運行環境

1)手機ROM版本高於或等於2.2版本

2)手機RAM大於500M,該RAM值通過手機 /proc/meminfo 文件的MemTotal動態獲取

注:如果不滿足上述條件,SDK會自動切換到系統WebView,SDK使用者不用關心該切換過程。

3. SDK尺寸指標

1)SDK提供的JAR包約250K

集成步驟

  1. 下載SDK
    地址:https://x5.tencent.com/tbs/sdk.html
    image.png

2.將下載的tbs jar包依賴到項目中

3.將原生webview控件改成jar包下的控件:

<com.tencent.smtt.sdk.WebView

android:id="@+id/forum_context"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:paddingLeft="5dp"

android:paddingRight="5dp" />

4.AndroidManifest.xml里加入權限聲明:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

5.Application初始化

  //非wifi情況下,主動下載x5內核
        QbSdk.setDownloadWithoutWifi(true);
        //蒐集本地tbs內核信息並上報服務器,服務器返回結果決定使用哪個內核。
        QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
            @Override
            public void onViewInitFinished(boolean arg0) {
                //x5內核初始化完成的回調,爲true表示x5內核加載成功,否則表示x5內核加載失敗,會自動切換到系統內核。
                LogUtils.d("開啓TBS===X5加速成功");
            }

            @Override
            public void onCoreInitFinished() {
                LogUtils.d("開啓TBS===X5加速失敗");

            }
        };
        //x5內核初始化接口
        QbSdk.initX5Environment(getApplicationContext(), cb);

剩下的配置大家自行配置就好了。

注意點

1.APP首次初始化很久
解決方案:
(1)多進程方案:

// 在調用TBS初始化、創建WebView之前進行如下配置,以開啓優化方案
HashMap<String, Object> map = new HashMap<String, Object>();
map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER, true);
QbSdk.initTbsSettings(map);

(2)正價Service聲明:

<!--     在AndroidManifest.xml中增加內核首次加載時優化Service聲明;    該Service僅在TBS內核首次Dex加載時觸發並執行dex2oat任務,任務完成後自動結束。  --><service
    android:name="com.tencent.smtt.export.external.DexClassLoaderProviderService"
	android:label="dexopt"
	android:process=":dexopt" ></service>

2.x5暫時不提供64位so文件
爲了保證64位手機能正常加載x5內核,請參照如下鏈接修改相關配置https://x5.tencent.com/tbs/technical.html#/detail/sdk/1/34cf1488-7dc2-41ca-a77f-0014112bcab7
大家可以關注我的微信公衆號:「秦子帥」一個有質量、有態度的公衆號!

公衆號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章