使用XwalkView的目的无非是为了提升Android4.4以下版本(非chromium内核)的Html5渲染性能,并且能够使得H5页面在众多定制化的ROM上拥有一致的体验。

当然了,App内置Chromuim内核的缺点也是显而易见的,那就是App的包体积会增大20M左右。但是从hybrid应用开发来看,牺牲掉的体积所换来的优秀体验还是值得的。微信内置了QQ浏览器X5内核也充分说明了这一点。

1.下载XWalkView

https://download.01.org/crosswalk/releases/crosswalk/android/maven2/org/xwalk/xwalk_core_library/

2.新建项目XWalkViewDemo,并引入和依赖arr包



3.布局文件中引入xwalk activity_main.xml

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="zjsx.xwalkviewdemo.MainActivity"> <org.xwalk.core.XWalkView
android:id="@+id/xwalkView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</RelativeLayout>

4.使用xwalkview加载链接 MainActivity.java

public class MainActivity extends AppCompatActivity {
XWalkView mXwalkView; class MyResourceClient extends XWalkResourceClient {
MyResourceClient(XWalkView view) {
super(view);
}
} class MyUIClient extends XWalkUIClient {
MyUIClient(XWalkView view) {
super(view);
}
} @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mXwalkView = (XWalkView) findViewById(R.id.xwalkView);
mXwalkView.setResourceClient(new MyResourceClient(mXwalkView));
mXwalkView.setUIClient(new MyUIClient(mXwalkView));
mXwalkView.load("http://www.bing.com", null);
} @Override
protected void onPause() {
super.onPause();
if (mXwalkView != null) {
mXwalkView.pauseTimers();
mXwalkView.onHide();
}
} @Override
protected void onResume() {
super.onResume();
if (mXwalkView != null) {
mXwalkView.resumeTimers();
mXwalkView.onShow();
}
} @Override
protected void onDestroy() {
super.onDestroy();
if (mXwalkView != null) {
mXwalkView.onDestroy();
}
} @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (mXwalkView != null) {
mXwalkView.onActivityResult(requestCode, resultCode, data);
}
} @Override
public void onNewIntent(Intent intent) {
if (mXwalkView != null) {
mXwalkView.onNewIntent(intent);
}
}
}

5.运行结果



6.代码地址

https://github.com/zjsx/xwalkviewdemo

Android Hybird架构之整合XwalkView,让你的App内置chromium内核的更多相关文章

  1. Android ROM开发(三)——精简官方ROM并且内置ROOT权限,开启Romer之路

    Android ROM开发(三)--精简官方ROM并且内置ROOT权限,开启Romer之路 相信ROM的相关信息大家通过前几篇的学习都是有所了解了,这里就不在一一提示了,这里我们下载一个官方包,我们还 ...

  2. Android 打造自己的个性化应用(二):应用程序内置资源实现换肤功能

    通过应用程序内置资源实现换肤,典型的应用为QQ空间中换肤的实现. 应用场景为: 应用一般不大,且页面较少,风格相对简单,一般只用实现部分资源或者只用实现背景的更换. 此种换肤方式实现的思路: 1. 把 ...

  3. 探讨Android中的内置浏览器和Chrome

    1.Android默认浏览器和Chrome的区别 Android出厂自带的浏览器:安卓WebKit浏览器,也成内置浏览器或者默认浏览器. 安卓WebKit不是Chrome.Chrome浏览器在它的用户 ...

  4. 【Android】18.1 利用安卓内置的定位服务实现位置跟踪

    分类:C#.Android.VS2015: 创建日期:2016-03-04 一.安卓内置的定位服务简介 通常将各种不同的定位技术称为位置服务或定位服务.这种服务是通过电信运营商的无线电通信网络(如GS ...

  5. Android体系架构详解

    Andriod是什么? 首先,就像Android开源和兼容性技术负责人Dan Morrill在Android开发手册兼容性部分所解释的,“Android并不是传统的Linux风格的一个规范或分发版本, ...

  6. Android零基础入门第2节:Android 系统架构和应用组件那些事

    原文:Android零基础入门第2节:Android 系统架构和应用组件那些事 继上一期浅谈了Android的前世今生,这一期一起来大致回顾一下Android 系统架构和应用组件. 一.Android ...

  7. Android系统架构说明介绍

    Android系统架构说明介绍 Android系统架构和一些普遍的操作系统差不多,都是采用了分层的架构,从他们之间的架构图看,Android系统架构分为四个层,从高层到低层分别是应用程序层.应用程序框 ...

  8. Android 系统架构

    Android 系统从下至上分为四层:Linux 内核.Android 核心库及Android 运行时环境(Android Runtime). 应用程序框架以及应用程序等. Linux 内核(Linu ...

  9. 转载: android 学习架构

    http://www.cnblogs.com/forlina/archive/2011/06/29/2093332.html 引言 通过前面两篇: Android 开发之旅:环境搭建及HelloWor ...

  10. Android NDK 和 OpenCV 整合开发总结(3)

    Android NDK 和 OpenCV 整合开发总结(3) http://hujiaweibujidao.github.io/blog/2013/11/18/android-ndk-and-open ...

随机推荐

  1. 初探 Rust 语言与环境搭建

    1. Rust 简介 Rust 的历史 起源:Rust 语言最初由 Mozilla 研究员 Graydon Hoare 于 2006 年开始设计,并于 2009 年首次公开. 开发:Rust 是 Mo ...

  2. JAVA SDK防反编译处理(原创)

    一.前言 网上找的资料是加密Jar包,运行时需要输入密码才能运行,这种方式的加密仅仅能于有main函数入口的加密,而不能满足对外提供SDK.我们的需求是对class文件加密防反编译,但又不影响别人二次 ...

  3. Mac 删除 Steam 游戏图标

    Steam 将游戏安装在了 ~/Applications,打开访达,前往该目录,将相关游戏移到废纸篓.

  4. 部署在阿里云上的项目收到了阿里云发送的shiro漏洞

    编辑 ​ 还记得在十月份凯哥发布过一篇修改若依系统编辑器的文章,然后为了方便大家浏览,凯哥就部署在服务器上了,结果,没想到最近收到了阿里云漏洞扫描通知: 编辑 ​ 如果不修改的话:对于长期存在安全隐患 ...

  5. 【转】如何在ASP.NET Core自定义中间件中读取Request.Body和Response.Body的内容?

    文章名称: 如何在ASP.NET Core自定义中间件读取Request.Body和Response.Body的内容?作者: Lamond Lu地址: https://www.cnblogs.com/ ...

  6. 使用 Helm 在 Kubernetes 上安装 Consul

    Consul Sync 部署 官方文档部署:https://developer.hashicorp.com/consul/docs/k8s/installation/install 部署版本 1.14 ...

  7. Java 8 新特性:Stream 流快速入门

    前言 在 java 中,涉及到对数组.集合等集合类元素的操作时,通常我们使用的是循环的方式进行逐个遍历处理,或者使用 stream 流的方式进行处理. 什么是 Stream? Stream(流)是一个 ...

  8. 算法学习-CDQ分治

    对于二维偏序,为普通的求逆序对,只需要先排序一遍,然后树状数组或双指针即可 而三位偏序甚至更高,则需要用 CDQ 分治,简单来说,就是将树状数组和双指针结合 操作步骤如下: 1.开始将数组按第一维排序 ...

  9. oneforall配置环境,报错cannot import name 'sre_parse' from 're' 解决方法

    高版本python中re模块没有了sre_parse模块, 可以修改python中的exrex.py 代码,直接导入sre_parse模块

  10. Autodesk 3d Max2020 初始化闪退

    事件起因:给同事安装完 Autodesk 3d Max2020 版本之后,软件初始化就闪退,后来在网上查了资料后解决. 解决办法如下:services.msc --> Autodesk 开头的服 ...