zoukankan      html  css  js  c++  java
  • X5SDK 腾讯浏览器内核


    介绍
    腾讯浏览服务由QQ浏览器团队出品,致力于优化移动端【webview】体验的整套解决方案,使用QQ浏览器X5内核SDK和X5云端服务,解决移动端webview使用过程中出现的一切问题,优化用户的浏览体验,同时腾讯还将持续提供后续的更新和优化,为开发者提供最新最优秀的功能和服务。
     
    X5SDK是通过调用【微信/手机QQ/空间】的X5内核,解决系统webview兼容性差、加载速度慢、功能缺陷等问题,开发接入便捷,大小只有253K,仅需几行代码,即可解决一切令开发者们头疼的问题,为用户提供最优秀的浏览体验。
     
    同时,QQ浏览器团队还将持续更新和优化X5内核,持续优化功能,并保证兼容各种web新特性。
     
    其相对于系统webview,具有下述明显优势:
    1) 速度快:相比系统webView的网页加载速度有近30%的提升。
    2) 省流量:云端优化技术使流量节省20%
    3) 更安全:24小时安全问题解决机制
    4) 更稳定:经过亿级用户的使用考验,CRASH率0.15%
    5) 集成强大的视频播放器,支持各种视频格式直接打开
    6) 适屏排版、字体设置等浏览增强功能的提供
    7) Html5更完整支持。
    8) 无系统内核的碎片化问题,更少的兼容性问题
    X5云端服务是通过云端技术保证用户在未装QQ浏览器的情况下同样可以使用X5内核提供的优秀服务,包括云加速、云安全、云转换三大功能。云加速是通过首屏加速、智能路由、图片压缩等技术保障网页浏览的快、省、悦;云安全是通过URL安全检测、JS黑名单管理、负载监控等保障网页浏览的安全稳定;云转换是使用URL聚合+XPATH的解决方案,解决移动阅读难题。

    运行环境
    1)手机ROM版本高于或等于2.2版本
    2)手机RAM大于500M,该RAM值通过手机 /proc/meminfo 文件的MemTotal动态获取
    注:如果不满足上述条件,SDK会自动切换到系统WebView,SDK使用者不用关心该切换过程。

    辨别是否使用x5webview的方法:
    显示网页文字时,可通过长按选择文字的标识判断,如下水滴状选择效果是x5webview 的标志:

    接入文档
    1、下载X5内核jar包,复制到工程的libs目录下。

    2、将源码和XML里的系统包和类替换为SDK里的包和类,具体对应如下:
    系统内核SDK内核
    android.webkit.ConsoleMessage        com.tencent.smtt.export.external.interfaces.ConsoleMessage
    android.webkit.CacheManager        com.tencent.smtt.sdk.CacheManager(deprecated)
    android.webkit.CookieManager        com.tencent.smtt.sdk.CookieManager
    android.webkit.CookieSyncManager        com.tencent.smtt.sdk.CookieSyncManager
    android.webkit.CustomViewCallback        com.tencent.smtt.export.external.interfaces.IX5WebChromeClient.CustomViewCallback
    android.webkit.DownloadListener        com.tencent.smtt.sdk.DownloadListener
    android.webkit.GeolocationPermissions        com.tencent.smtt.export.external.interfaces.GeolocationPermissionsCallback
    android.webkit.HttpAuthHandler        com.tencent.smtt.export.external.interfaces.HttpAuthHandler
    android.webkit.JsPromptResult        com.tencent.smtt.export.external.interfaces.JsPromptResult
    android.webkit.JsResult        com.tencent.smtt.export.external.interfaces.JsResult
    android.webkit.SslErrorHandler        com.tencent.smtt.export.external.interfaces.SslErrorHandler
    android.webkit.ValueCallback        com.tencent.smtt.sdk.ValueCallback
    android.webkit.WebBackForwardList        com.tencent.smtt.sdk.WebBackForwardList
    android.webkit.WebChromeClient        com.tencent.smtt.sdk.WebChromeClient
    android.webkit.WebHistoryItem        com.tencent.smtt.sdk.WebHistoryItem
    android.webkit.WebIconDatabase        com.tencent.smtt.sdk.WebIconDatabase
    android.webkit.WebResourceResponse        com.tencent.smtt.export.external.interfaces.WebResourceResponse
    android.webkit.WebSettings        com.tencent.smtt.sdk.WebSettings
    android.webkit.WebSettings.LayoutAlgorithm        com.tencent.smtt.sdk.WebSettings.LayoutAlgorithm
    android.webkit.WebStorage        com.tencent.smtt.sdk.WebStorage
    android.webkit.WebView        com.tencent.smtt.sdk.WebView
    android.webkit.WebViewClient        com.tencent.smtt.sdk.WebViewClient

    布局xml里的WebView替换为 com.tencent.smtt.sdk.WebView

    3、权限
    <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" />

    4、其他一大堆的不太常用的东西请看官网

    测试Activity
    public class MainActivity extends ListActivity {
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            String[] array = { "普通网页""动画""视频""视频,美人鱼""福利金融,安全保障""福利金融,理财学院""福利金融,介绍"};
            setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1new ArrayList<String>(Arrays.asList(array))));
        }
        @Override
        protected void onListItemClick(ListView l, View v, int position, long id) {
            switch (position) {
            case 0:
                X5WebViewActivity.launche(this"普通网页""http://www.cnblogs.com/baiqiantao/");
                break;
            case 1:
                X5WebViewActivity.launche(this"动画""http://thewebrocks.com/demos/cubes/");
                break;
            case 2:
                X5WebViewActivity.launche(this"视频""http://www.w3school.com.cn/tiy/t.asp?f=html5_av_met_play_pause");
                break;
            case 3:
                X5WebViewActivity.launche(this"视频,美人鱼""http://v.qq.com/cover/x/xg95sxi4q7zc4uo.html");
                break;
            case 4:
                X5WebViewActivity.launche(this"福利金融,安全保障""http://wap.100cb.cn/static/security.html");
                break;
            case 5:
                X5WebViewActivity.launche(this"福利金融,理财学院""http://fulijinrong.kuaizhan.com/58/36/p32451810370302");
                break;
            case 6:
                X5WebViewActivity.launche(this"福利金融,介绍""http://wap.flh001.com/static/1minute/index.html");
                break;
            }
        }
    }





    附件列表

    • 相关阅读:
      2019.8.8 python day03
      2019.8.7 python进阶day02
      2019.8.6(python day01)
      2019.8.5
      2019.8.2
      2019.8.1
      2019.7.31
      2019.7.30
      面向对象进阶
      访问可见性问题和@property装饰器
    • 原文地址:https://www.cnblogs.com/baiqiantao/p/3eba813681d01255a1ed87c4867f916e.html
    Copyright © 2011-2022 走看看