安卓开发笔记(二十四):手把手教你一步步集成腾讯X5内核(Tencent TBS X5)

时间:2022-09-22 10:16:28

  1.为什么要集成腾讯X5内核?

X5内核相对于系统webview,具有下述明显优势:

1) 速度快:相比系统webview的网页打开速度有30+%的提升;

2) 省流量:使用云端优化技术使流量节省20+%;

3) 更安全:安全问题可以在24小时内修复;

4) 更稳定:经过亿级用户的使用考验,CRASH率低于0.15%;

5) 兼容好:无系统内核的碎片化问题,更少的兼容性问题;

6) 体验优:支持夜间模式、适屏排版、字体设置等浏览增强功能;

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

8) 更强大:集成强大的视频播放器,支持视频格式远多于系统webview;

9) 视频和文件格式的支持x5内核多于系统内核

10) 防劫持是x5内核的一大亮点

  • 因此确实可以看到这个内核的优点是很多的,还有很多其它的优点,我也不一一解释了,现在我们来看看怎么做吧。笔者在做的时候也参见了很多人的博客,但是他们博客上的代码基本无法进行成功运行,因此下面这些是本人经过改进后的版本,是绝对可以进行运行的。

2.下载SDK

那肯定是下载官方的SDK 包啦(腾讯浏览服务-SDK下载) 我这里下载的这个:
安卓开发笔记(二十四):手把手教你一步步集成腾讯X5内核(Tencent TBS X5)

3.根据SDK 提供的jar包拷贝到自己的项目下

将下载下来的文件解压,然后将后缀为jar的文件复制到自己安卓工程下的libs目录下:
安卓开发笔记(二十四):手把手教你一步步集成腾讯X5内核(Tencent TBS X5)

注意:在把这个jar文件放置在libs文件夹之后,需要把我们的android studio当中左上方的的android视图更换为project视图,如下图所示:
安卓开发笔记(二十四):手把手教你一步步集成腾讯X5内核(Tencent TBS X5)

然右键点击我们的jar文件,在 jar 文件上右击,调出下拉菜单 ,点击下图标注的 Add As Library… 选项

安卓开发笔记(二十四):手把手教你一步步集成腾讯X5内核(Tencent TBS X5)

选择jar 文件添加到的项目,我这里直接确定就行了:

安卓开发笔记(二十四):手把手教你一步步集成腾讯X5内核(Tencent TBS X5)

等待Android Studio 进行同步下载,配置等等

第五步:检查是否导入成功

安卓开发笔记(二十四):手把手教你一步步集成腾讯X5内核(Tencent TBS X5)

4.项目代码实现

第一步.下面就是最重要的代码实现了,首先我们进行布局,在首页的布局layout的xml文件,activity_main.xml文件夹下写上我们新的webview:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"> <com.tencent.smtt.sdk.WebView
android:id="@+id/webView2"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>

第二步,创建新类MyApplication.java,与Mainactivity.java所并列在一起

import android.app.Application;
import android.util.Log; import com.tencent.smtt.sdk.QbSdk; public class MyApplication extends Application {
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
initX5();
} /**
* 初始化X5
*/
private void initX5() {
//x5內核初始化回调
QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
@Override
public void onViewInitFinished(boolean arg0) {
//x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
Log.d("app", " onViewInitFinished is " + arg0);
} @Override
public void onCoreInitFinished() {
}
};
//x5内核初始化接口
QbSdk.initX5Environment(getApplicationContext(), cb); }
}

第三步.编写mainactivity.java

import android.os.Build;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Toast; import com.tencent.smtt.sdk.WebView; public class MainActivity extends AppCompatActivity {
private WebView mWebView; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
mWebView = (com.tencent.smtt.sdk.WebView) findViewById(R.id.webView2);
mWebView.loadUrl("file:///android_asset/index3.html");//输入我们需要进入的网址,我这里引用的是本地网页,您也可以引用外地的,比如https://www.baidu.com
}

只要你写好了这几部分,我们就可以完美地使用腾讯X5内核啦!!

安卓开发笔记(二十四):手把手教你一步步集成腾讯X5内核(Tencent TBS X5)的更多相关文章

  1. python3&period;4学习笔记&lpar;二十四&rpar; Python pycharm window安装redis MySQL-python相关方法

    python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...

  2. &lpar;C&sol;C&plus;&plus;学习笔记&rpar; 二十四&period; 知识补充

    二十四. 知识补充 ● 子类调用父类构造函数 ※ 为什么子类要调用父类的构造函数? 因为子类继承父类,会继承到父类中的数据,所以子类在进行对象初始化时,先调用父类的构造函数,这就是子类的实例化过程. ...

  3. 安卓开发笔记(十二):SQLite数据库储存(上)

    SQLite数据库存储(上) 创建数据库 Android专门提供了一个 SQLiteOpenHelper帮助类对数据库进行创建和升级 SQLiteOpenHelper需要创建一个自己的帮助类去继承它并 ...

  4. Android笔记二十四&period;Android基于回调的事件处理机制

        假设说事件监听机制是一种托付式的事件处理,那么回调机制则与之相反,对于基于回调的事件处理模型来说,事件源和事件监听器是统一的,或者说事件监听器全然消失了,当用户在GUI控件上激发某个事件时,控 ...

  5. 仿酷狗音乐播放器开发日志二十四 选项设置窗体的实现(附328行xml布局源码)

    转载请说明原出处,谢谢~~ 花了两天时间把仿酷狗的选项设置窗体做出来了,当然了只是做了外观.现在开学了,写代码的时间减少,所以整个仿酷狗的工程开发速度减慢了.今天把仿酷狗的选项设置窗体的布局代码分享出 ...

  6. Java基础学习笔记二十四 MySQL安装图解

    .MYSQL的安装 1.打开下载的mysql安装文件mysql-5.5.27-win32.zip,双击解压缩,运行“setup.exe”. 2.选择安装类型,有“Typical(默认)”.“Compl ...

  7. 安卓开发笔记(十八):实现button按钮事件的三种方法

    Android开发中有三种主要的方式用于设置View的点击事件,1.创建内部类:2.主类中实现OnClickListener接口:3.使用匿名内部类.这三种方式都用到了OnClickListener接 ...

  8. python3笔记二十四:Mysql数据库操作命令

    一:学习内容 Mysql操作命令:启动服务.停止服务.连接数据库.退出数据库.查看版本.显示当前时间.远程连接 数据库操作命令:创建数据库.删除数据库.切换数据库.查看当前选择的数据库 表操作命令:查 ...

  9. JDK源码阅读-------自学笔记&lpar;二十四&rpar;&lpar;java&period;util&period;LinkedList 再探 自定义讲解&rpar;

    一.实现get方法 1.一般思维实现思路 1).将对象的值放入一个中间变量中. 2).遍历索引值,将中间量的下一个元素赋值给中间量. 3).返回中间量中的元素值. 4).示意图 get(2),传入角标 ...

随机推荐

  1. C&num; List根据某一字段排序 将字段相同的排序到一起

    List<JZJLXQ_Prescription_Item> ciList = new List<JZJLXQ_Prescription_Item>(); List<JZ ...

  2. 调用天气预报webservice

    <script src="jquery.js" type="text/javascript" charset="utf-8">& ...

  3. mybatis的xlm的sql

    <sqlMap namespace="egis.scms.order">    <typeAlias alias="ScmsOrderDTO" ...

  4. 向plsql中导入数据

    1.TOOLS-->ODBC IMPORTER 2.TOOLS-->TEXT IMPORTER3.sqlldr userid=zj/zj@orcl control=D:\test.ctl ...

  5. 201521123092《java程序设计》第五周学习总结

    1.本周学习总结 #1.1 尝试使用思维导图总结有关多态与接口的知识点. 2.书面作业 #1.代码阅读:Child压缩包内源代码##1.1 com.parent包中Child.java文件能否编译通过 ...

  6. &lbrack;机器学习&rsqb;模型评价参数,准确率,召回率,F1-score

    很久很久以前,我还是有个建筑梦的大二少年,有一天,讲图的老师看了眼我的设计图,说:"我觉得你这个设计做得很紧张".当时我就崩溃,对紧张不紧张这样的评价标准理解无能.多年后我终于明白 ...

  7. LinkedQueue的底层实现

    package zy813ture; public class MyLinkedQueue1 { private Node head; private Node last = head = new N ...

  8. windows python监听文件触发脚本

    from watchdog.events import * class FileEventHandler(FileSystemEventHandler): def __init__(self): Fi ...

  9. instanceof 和 typeof

    instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链 function Person(){ Person.prototype.dan ...

  10. ArduinoNano卡在上传,无法烧录

    卡在“上传...”.过了很久被告知失败. 上午在开发版管理器中将Arduino AVR Boards从1.6.20升级到1.6.22,出现这个问题. 再安装回1.6.20,问题未被解决. 查阅资料无果 ...