Android接入騰訊X5瀏覽器內核

技術特性
騰訊瀏覽服務是致力於優化移動端webview體驗的整套解決方案。該方案由SDK、手機QQ瀏覽器X5內核和X5雲端服務組成,解決移動端webview使用過程中出現的一切問題,優化用戶的瀏覽體驗。同時,騰訊還將持續提供後續的更新和優化,爲開發者提供最新最優秀的功能和服務。

其中,SDK是通過共享使用用戶手機上微信、手機QQ、空間等軟件已經下載好的X5內核,低成本實現對系統webview的替代。該SDK大小隻有200+K,接入時僅需修改幾行代碼。

其中,X5內核相對於系統webview,具有下述明顯優勢:

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

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

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

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

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

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

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

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

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

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

其中,X5雲端服務包括雲加速、雲安全、雲轉換三大功能。雲加速是通過首屏加速、智能路由、圖片壓縮等技術保障網頁瀏覽的快、省、悅;雲安全是通過代理加密、URL安全檢測、JS黑名單管理、負載監控等防範網頁被劫持插入廣告、保障網頁瀏覽的安全穩定;雲轉換是使用URL聚合+XPATH的解決方案,解決移動閱讀難題。

接入方法

1、導入Jar包和so文件

	https://x5.tencent.com/tbs/guide.html 下載SDK(且包括 示例Demo )
	jar包在libs目錄下
	so文件在示例中的\src\main\jniLibs\armeabi\libtbs.so 

兩者都照搬到實際項目的對應目錄,jar包記得添加到依賴庫中

2、添加權限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<!-- 硬件加速對X5視頻播放非常重要,建議開啓 -->
<uses-permission android:name="android.permission.GET_TASKS" />

3、視頻設置

頁面的Activity需要聲明android:configChanges="orientation|screenSize|keyboardHidden"

4、檢測是否已使用了騰訊X5內核

1. webview的getX5WebViewExtension()返回非null表示已加載了x5內核webview

2. 您的app打開網頁http://soft.imtt.qq.com/browser/tes/feedback.html,顯示000000表示加載的是系統內核,顯示大於零的數字表示加載了x5內核(該數字是x5內核版本號)

其他的和webview都是大同小異的。

		webView = (WebView) findViewById(R.id.forum_context);
        WebSettings webSetting = webView.getSettings();
        webSetting.setJavaScriptEnabled(true);
        webSetting.setJavaScriptCanOpenWindowsAutomatically(true);
        webSetting.setAllowFileAccess(true);
        webSetting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
        webSetting.setSupportZoom(true);
        webSetting.setBuiltInZoomControls(false);
        webSetting.setUseWideViewPort(true);
        webSetting.setSupportMultipleWindows(true);
        // webSetting.setLoadWithOverviewMode(true);
        webSetting.setAppCacheEnabled(true);
        // webSetting.setDatabaseEnabled(true);
        webSetting.setDomStorageEnabled(true);
        webSetting.setGeolocationEnabled(true);
//        webView.loadUrl("http://soft.imtt.qq.com/browser/tes/feedback.html");
        webView.loadUrl("http://www.huya.com");
        webSetting.setAppCacheMaxSize(Long.MAX_VALUE);

        // webSetting.setPageCacheCapacity(IX5WebSettings.DEFAULT_CACHE_CAPACITY);
        webSetting.setPluginState(WebSettings.PluginState.ON_DEMAND);
        // webSetting.setRenderPriority(WebSettings.RenderPriority.HIGH);
        webSetting.setCacheMode(WebSettings.LOAD_NO_CACHE);

        getWindow().setFormat(PixelFormat.TRANSLUCENT);

        webView.getView().setOverScrollMode(View.OVER_SCROLL_ALWAYS);
        
        protected void onDestroy() {
	        if (this.webView != null) {
	            webView.destroy();
	        }
        super.onDestroy();
    }

效果圖晚點再放,手機在充電。

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