《WebKit 技术内幕》学习之十五(5):Web前端的未来

news2024/11/15 8:56:34

5 Crosswalk项目

        Crosswalk项目是由英特尔公司发起的一个开源项目,该项目基于WebKit(Blink)和Chromium等开源项目打造,其目的是提供一个跨不同操作系统的Web运行环境,包括Android、Tizen、Linux、Windows、MacOS等众多平台,目前主要支持Android、Tizen和Linux等。如前面描述,Crosswalk是该Web运行环境中能够作为操作系统的一个独立模块或者说是本地应用,而Crosswalk本身不是一个操作系统,具体请读者查看“https://www.crosswalk-project.org/”。不同于Cordova项目,Crosswalk不仅仅提供一些Web接口的扩展,也不是简单的基于系统默认的嵌入式应用接口,如Android WebView,而是使用新Blink和Chromium的能力,加强对HTML5能力的支持,同时加入了Web作为一个运行平台的各种能力,从功能上看,它对Web应用的支持和规范的支持更加完整,图15-5描述了Web应用在Crosswalk上的基本工作过程。

        图15-5中可以看到在Android系统和Tizen系统上两者是有些不一样的,这是因为Tizen系统本身是一个直接支持Web应用的操作系统,所以它支持将Web应用(XPK格式)安装到系统中而不需要额外的处理。当用户需要启动Web应用的时候,由Crosswalk加载Web应用的设置并使用运行环境来启动该Web应用。

                                图15-5 Crosswalk支持Web应用的示意图

        在Android系统上,那就是不同的故事了,因为Android系统只是支持本地应用,为此需要特殊的工具将Web应用转换成Android系统的APK。这一工具当然需要满足Android上的特别需求,这里有两个目的。

  • 因为Web应用中有名称、图标、加载入口等信息,这些信息需要设置到Android的AndroidManifest.xml中,因此,当用户安装该APK的时候,名称和图标等信息就会显示在应用的列表中,跟其他本地应用看起来一样。
  • 满足Android系统只能从Application和Activity类来启动,而不是Web应用。为此,Crosswalk项目提供了一些代码来让Android系统启动Crosswalk运行平台,而该运行平台根据Web应用的设置来启动Web应用。

        下面以Android平台上的实现为例说明Crosswalk项目的架构和特性。目前,项目还在不断地发展中,首先理解一下Crosswalk在Android平台上的设计结构,图15-6是Crosswalk在Android系统上的层次结构图。

                                图15-6 Crosswalk在Android系统上的层次结构图

        图15-6中灰色部分完全是Crosswalk提供的新部分,而Content和Blink主要来源于Chromium开源项目,当然也包括一些不同的地方,如性能优化。在这之上即是Crosswalk中的RuntimeCore层和Runtime层。RuntimeCore层使用Content层的桥接层并提供简单易用的Java接口。而Runtime层则包括扩展Web接口的扩展机制、各种Web运行平台的新Web接口(如双屏幕实现的支持等),也包括跟Android系统集成的部分,如对话框、文件选择器等。在这之上就是调用Runtime层的封装层,用来加载Web应用,同时也是为了符合Android系统的需要,包括Activity和Application等具体实现。

根据上面的层次结构图,Crosswalk大致有以下特性。

  • 因为使用了最新的Chromium和Blink代码,所以Crosswalk对于HTML5功能的支持非常好,特别是同之前Android系统上提供的基于WebKit的Android移植实现的WebView对比。
  • 因为不依赖于操作系统的渲染网页的能力,所以Crosswalk提供统一的接口,而不是在不同平台上支持不同的接口,这样在最大程度上提供了统一的编程接口,当然不是所有接口完全一致。
  • Crosswalk中加入了一些特别的优化代码,使得它的性能比较出色,不仅仅是跟WebView对比,而且跟Chromium比较,Crosswalk在某些地方也表现出不一样的性能优势。
  • Crosswalk设计并实现了自己的扩展系统,在Android上,是一套提供Java接口的机制,虽然它的内部实现直接修改了Chromium的代码。该系统能够允许Web开发者在需要的时候使用Java或者C++来扩展Web的能力。
  • Crosswalk实现了众多W3C定义的关于Web应用方面的规范,如平台的运行模型、各种设备接口等,极大地提升了Web运行环境的能力,同时因为遵守规范,对移植性有极大的好处。
  • Crosswalk极好地同Android系统结合起来,小到应用名称、图标,大到应用程序生命周期,各种协议的支持,如电话、用户界面、安全权限等,这一切使Web应用在Android系统之上能够获得跟本地应用类似的体验。
  • Crosswalk引入了对很多新功能的支持,如Miracast的支持,它能够支持多屏显示,对很多应用提供了良好的体验。当然还有很多其他的功能,读者可以慢慢挖掘。

        对于Web应用的开发者来说,实际上可以在完全不了解这些背后故事的同时依然使用Crosswalk,你所要做的仅是使用一个工具,也就是Crosswalk中的打包工具,该工具可以根据Web应用的设置来自动生成APK文件,开发者可以将该文件上传至Google Play Store就可以了,十分方便,具体的步骤可以参考官网上的文档,有比较详细的描述。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1414711.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux-----Shell编程之循环语句

目录 一、小命令 1、echo 实验: 2、date ------ 查看当前系统时间 3、cal ---- 日历 4、seq 打印 二、循环语句 1、for语句 实验: 计算整数和: 列出奇偶数 批量添加、删除用户 密码验证 随机抽奖 改名 九九乘法表 九九乘…

线性表--栈

1.什么是栈? 栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除 操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈&#xff…

AI大模型开发架构设计(5)——人人能学会的Llama-2大模型微调

文章目录 人人能学会的Llama-2大模型微调1 什么是Llama-2以及关键特性分析什么是Llama-2?Llama-2关键特性分析2 Llama-2微调全流程剖析为什么要微调Llama-2?Llama-2微调全流程3 基于Llama-2微调3个应用案例案例1:电子游戏评价数据生成文本数据集合案例2:利用Llama-2微调模型…

linux 查看zookeeper server运行版本号

zookeeper版本查看运行命令:echo stat|nc localhost 2181 显示如下图所示: Zookeeper version: 3.4.5-cdh6.3.2--1, built on 11/08/2019 13:15 GMT Clients: /127.0.0.1:44814[0](queued0,recved1,sent0) Latency min/avg/max: 0/0/0 Received: 9 Se…

【Linux】开始使用 vim 吧!!!

Linux 1 what is vim ?2 vim基本概念3 vim的基本操作 !3.1 vim的快捷方式3.1.1 复制与粘贴3.1.2 撤销与剪切3.1.3 字符操作 3.2 vim的光标操作3.3 vim的文件操作 总结Thanks♪(・ω・)ノ感谢阅读下一篇文章见!…

这是一片测试文章

这是一片测试文章 这是一片测试文章 这是一片测试文章 这是一片测试文章 这是一片测试文章 这是一片测试文章 真的是测试文章 -111122225555444433333333222211111 dddddaaa

网络安全B模块(笔记详解)- HASH算法的基本使用

1.通过服务器场景(A-Server),进行HASH算法的基本使用。将123456作为openssl md5 的输入参数,使用 123456进行md5计算并将内容输出到屏幕。将此命令中输出结果的命令作为Flag提交; 2.通过服务器场景使用不同的加密方式对123456进行加密,对比两个加密字符串有何不同。使用…

20240127如何在线识别德语字幕?

20240127如何在线识别德语字幕? 2024/1/27 11:42 1945[科尔贝格]Kolberg 01:48:49 接近109分钟 德语视频的字幕OCR适配: 1、whisper,8:39-8:58,使用GTX1080需要接近20分钟。对整机性能要求比较重,特别吃显卡&#xff…

代码随想录算法刷题训练营day16

代码随想录算法刷题训练营day16:LeetCode(104)二叉树的最大深度 、LeetCode(559)n叉树的最大深度、LeetCode(111)二叉树的最小深度、LeetCode(222)完全二叉树的节点个数 LeetCode(104)二叉树的最大深度 题目 代码 /*** Definition for a binary tree node.* publ…

外包干了10个月,技术退步明显...

先说一下自己的情况,大专生,18年通过校招进入武汉某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

上升子序列的最大长度,递归-记忆化搜索-动态规划三步走

题目描述: 小明有一个数组,他想从数组任意元素开始向后遍历,找出所有上升子序列,并计算出最长的上升子序列的长度。 数据范围: 每组数据长度满足 1≤n≤200 1≤n≤200 , 数据大小满足 1≤val≤350 1≤val≤…

一句话说透redis哨兵模式

提到哨兵模式,不得不从另外一个模式进行说起,那就是redis的最常见的模式 主从模式,那么为啥还需要哨兵模式呢? 是因为如果开启了reids的主从模式,当主有问题时候,需要人工的切换到从节点上,无法…

如何实现无公网IP实现远程访问MongoDB文件数据库

📑前言 本文主要是如何实现无公网IP实现远程访问MongoDB文件数据库的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 &#x…

免费激活Vmware16且配置虚拟机网络

今天从头配置了一台虚拟机,遇到了点问题,记录一下从头开始的过程,以便下次查看 第一步 下载VM16 链接:https://pan.baidu.com/s/1a2gIXKYMMRXVEHb7bM4stw 提取码:7mht 步骤很简单,安装之后直接把文件夹里…

2024区块链应用最趋势,RWA实物资产化

作者 张群(赛联区块链教育首席讲师,工信部赛迪特聘资深专家,CSDN认证业界专家,微软认证专家,多家企业区块链产品顾问)关注张群,为您提供一站式区块链技术和方案咨询。 实物资产通证化&#xff0…

设计模式分类

常用的设计模式有哪些? 常用的设计模式通常按照创建型、结构型和行为型三大类别来划分,以下是每个类别中的一些常见设计模式: 创建型(Creational Patterns): 单例模式(Singleton Pattern&…

openssl3.2 - 测试程序的学习 - test\acvp_test.c

文章目录 openssl3.2 - 测试程序的学习 - test\acvp_test.c概述笔记要单步学习的测试函数备注END openssl3.2 - 测试程序的学习 - test\acvp_test.c 概述 openssl3.2 - 测试程序的学习 将test*.c 收集起来后, 就不准备看makefile和make test的日志参考了. 按照收集的.c, 按照…

二极管漏电流对单片机ad采样偏差的影响

1,下图是常规的单片机采集电压电路,被测量电压经过电阻分压,给到mcu采集,反向二极管起到钳位作用,避免高压打坏mcu。 2,该电路存在的问题 二极管存在漏电流,会在100k电阻上产生叠加电压&#x…

Cybellum—信息安全测试工具

产品概述 由于软件和数据在汽车上的使用越来越多,汽车越来越“智能化”,汽车行业面临着重大的信息安全挑战。2021年8月,ISO/SAE 21434正式发布,标准中对汽车的信息安全提出了规范化的要求,汽车信息安全不容忽视。 Cyb…

什么是数据库的三级模式两级映象?

三级模式两级映象结构图 概念 三级模式 内模式:也称为存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。定义所有的内部记录类型、索引和文件组织方式,以及数据控制方面的细节。模式:又称概念…