百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

未来不是Web与App的生死之争,而是Web和App的融合,腾讯就在这么干

zhezhongyun 2025-02-17 15:00 34 浏览

这几篇文章已经基本上把 Web App(以下简称 Web)和 Native App(以下简称 App)的优劣讲清楚了,Web 的优势是

  • 对用户而言:通过Web访问业务,无需下载安装,快速安装使用,手机上也就无需安装大量的App,影响注意力;
  • 对开发者而言:手机浏览器跨操作系统,App开发商一次开发,就可以部署在Android,iOS,WP等不同平台的手机浏览器上,开发效率远超App;
  • 对互联网公司而言:基于Web访问业务,可以方便地跨应用访问和调用数据,这一点App目前还很难做到。

Web没有真正提高开发效率

但是即使理论上 Web 有诸多优势,但是无法改变目前 App 开发占据主流的现状,其原因不外乎以下:

  • 执行效率:在手机端,无论就JavaScript的执行效率,还是渲染性能,Web技术都无法与更直接调用OS功能的Native App技术匹配,这是天然的;
  • 内容呈现能力:在手机端,传统Web的UI控件与Native App的UI控件的的形态和表现能力有较大差距;
  • 功能覆盖:一些I/O功能调用如:拍照、音效、视频...基于HTML5的调用效果仍然不及Native API。

从用户体验的角度来讲,用户对于 Web 并没有强烈的需求。而且传统 Web 模式在产品模式上是有问题的,它在操作系统与应用之间插入一个自有的操作体系和业务体系。这在 PC 上可行,在手机端则会引发以下问题:

  • 操作极其不流畅相对于 PC 上可以通过鼠标、键盘、菜单等丰富的操作方式,手机上的操作方式非常有限。用户在手机浏览器等 Web 平台中针对 Web App 的操作,一部分将会被平台本身截获,产生不符合用户预期的执行结果。典型的被截获操作是系统回退和左右滑屏——这使得 Web App 在传统应用模式下无法实现应用内回退或侧边栏等设计。

  • 没有减少操作传统手机浏览器试图在其自身操作范畴内建设一个大而全的生态。用户进入所谓的轻应用,和桌面一样需要寻找,指示操作的对象从 App Store 换成了搜索引擎。Android 和 iOS 的 App 虽然数以百万计,但用户常用的业务类型只有 10 种左右,除游戏外,用户只需要针对每种业务类型选择安装 1~2 种垂直领域的“超级 App”就可以满足日常绝大部分移动互联网需求。

  • UI元素落后所有的手机浏览器,基本操作元素都来自 PC 浏览器,包括:菜单栏、网址框、搜索框、窗口标签等。不过,在寸土寸金的手机屏幕,这些元素都是必须的吗?在功能机时代,系统桌面不是多任务的,手机浏览器的多任务会给用户带来极大的便利;但智能手机系统本身就是多任务、多窗口的。用户没有感受到 Web 的便利。

除了一般意义上的 Web,还有一个要单独拿出来讲的是手机上的网页游戏。

高品质的手机游戏,如果完全基于传统 Web App 即时下载的运行模式,根本无法启动运行。而针对一些轻小的休闲游戏,微信、QQ 空间、微博等平台基于其社交属性,很容易引起用户的交流和分享,给“打飞机”“神经猫”“2048”等看似简陋却极易传播的 HTML5 游戏带来了巨大的访问量,但这样的游戏又很难找到持久粘性。

HTML5 标准的设计者认为 Canvas 就是 2D HTML5 游戏的技术基础;但在实际的开发中,绝大部分 HTML5 手游开发商却选择 DOM 作为运行基础。根本不是为游戏定义的。但是基于 canvas 开发高品质游戏,对研发人员有很高的要求。DOM 是 HTML 的基本组成部分,所有的前端开发人员都会;而拥有 Canvas 商用开发经验的前端人员则凤毛菱角。Canvas 的 API 非常底层,如果基 Canvas 开发游戏,必须从最基础的元素开始构建帧画面,其开发成本并不亚于基于 Native。

综上所述,传统意义上的 Web App 应用模式,面临诸多挑战。但是传统 Web App 应用模式的问题并不意味着移动 Web 缺乏应用价值。恰恰相反,移动 Web 具备其他平台技术很难有的独特优势。基于开放的应用模式,移动 Web 可以在更大的应用场景下,充分实现其平台化价值。在移动端,Web App 与 Native App 最终将不是孰优孰劣的问题,而是 Web App 自身将融入操作系统的大平台中。

Web的归Web,App的归App

在移动端,社交平台内传播的内容形态,当前移动搜索可以访问的内容形态,当然还有手机浏览器,都是基于 Web 的。所以,在几乎所有的 App 应用领域,几乎所有的 App 开发商都必须提供基于移动 Web 的内容呈现形态,否则,将失去社交平台、手机浏览器、移动搜索等重要的流量入口——这就是移动 Web 技术的平台化价值。

所以,对于移动 App 开发商而言,存在一个普遍的需求:只开发一套基于 Web 的应用,就可以同时部署在应用商店、社交平台、手机浏览器,可以被移动搜索访问,甚至还可以被其他应用直接调用。以下是某电商的新版移动端解决方案,融合和 Web 和 App。

同时,如果想将 Web 与浏览器内核打包为 App,Web App 在手机浏览器中运行可能存在的问题将得到自然解决,例如:

  • 功能缺陷可以通过Native API调用实现(Hybrid App技术);
  • 杜绝与业务本身无关的操作元素,不产生操作混淆;
  • 资源可以预先下载到本地,不需要运行时下载大量资源。

这个思路简单总结起来就是 Web 的归 Web,App 的归 App。但是这种思路也面临着一个问题,因为当前智能手机操作系统并不能很好地满足这个需求,当前应用 App 开发可用的内核平台运行效果很差。正如之前36氪讨论 HTML5 的文章中说的那样:

HTML5 标准本身涉及的技术并无任何障碍,截止 2013 年 90% 以上的 HTML5 的标准早已完成,但是迟迟无法定稿的原因则是各种利益集团的政治博弈。

不仅要优化,还要开放

再这样的局面下,其实是需要有一方出现强力推广自家的标准打破这种僵局。不管是苹果的 Safari 和 Google 的 Chrome,还是国内的大多数手机浏览器,都在基于 WebKit 不断优化浏览器引擎,也取得了很好的效果。但是这些引擎并不对第三方开放,开发者无法用他们来完成自己想要的 Hybird 开发。

在今年 9 月底,腾讯首先开放了QQ浏览器使用的X5内核,我认为这只是行业的第一步。顺便八个卦,这个内核很快也被微信采用了,这让我很意外。因为微信和 QQ 两家向来是不喜欢用对方的东西。

未来腾讯应当充分利用作为微信内核的优势,争取给 App 开发商提供真正一站式的应用开发服务支撑。 对其他手机浏览器内核厂商而言,如果面向移动 App 开放内核,同样可以获得广泛的需求空间;其他三方浏览器完全可以找到独特的差异化优势,也可以与 AppCan、PhoneGap 这些移动 Web 框架引擎巨头合作获得广泛的用户(应用开发商)资源。

一旦这样的整合完成后,对移动 App 开发商而言,只需要开发一次,就可以顺利适配微信、QQ、QQ 空间并打包为 Native App。对腾讯而言,借助这个内核,甚至可以直接打通包括应用宝、微信、QQ、QQ 空间、QQ 手机浏览器的完整的应用开发服务和应用分发产业链。

现在很多通过微信出现在我们面前的 HTML5 页面都是使用了腾讯的 X5 内核,比如各种 HTML5 招聘微门户,HTML5 邀请函还有最近的微信连 WiFi 弹出的商家营销页面。还有新浪新闻、凤凰客户端、知乎等平台也采用了腾讯 X5 的内核和云平台。

未来微信利用自己在用户技术方面的优势,“挟用户以定标准”,必然能推动国内 HTML5 开发向前推进。微信的心态也应该更开放。比如微信目前已经开始开放 API,支持从第三方App直接跳转微信公众号,但是必须经过微信的严格审核。如果未来采用腾讯 X5 内核的 Web 页面也可以直接跳转微信的各种服务,那想必也是极好的。

对其他手机浏览器内核厂商而言,如果面向移动 App 开放内核,同样可以获得广泛的需求空间;其他三方浏览器完全可以找到独特的差异化优势,也可以与 AppCan、PhoneGap 这些移动 Web 框架引擎巨头合作获得广泛的用户(应用开发商)资源

除了手机浏览器之外,硬件和平台级厂商也应当对移动 Web 的运行性能和运行效果提供持续的平台支撑和优化,若干厂商早已在为之投入,例如 Intel 支持基于 CPU SIMD 指令来加速 JS 代码的执行,xDK,crossWalk 框架;ARM 一直在持续优化 WebKit 关键库、cocos2d-js,推出 NEON;iOS8 正式开放 webGL;Chrome Mobile 支持 WebGL,并且从 Android4.4 开始,系统自带 WebView 基于 Chromium(但还没有支持 webGL)。

不过这只是一个开始,未来开放的 Web 和 App 的融合还要解决很多问题:

  • 提供针对移动 App 应用(而不仅仅是手机网页)的功能支持:传统上,Web 规范的使用对象是 Web 网页;但在今日,移动 Web 技术的用户已经远远不止是手机网页,而是大量的 Native App。移动 Web UI 控件的形态,应当与 Native App 的控件形态看齐,而不是与 PC 浏览器的 Web 形态保持规范上的一致。移动 Web 技术平台,应当更多地考虑如何基于 Web 技术实现 Native App 的内容体现和运行效果。

  • 提升 JS 运行性能:JS 非常灵活的高级语言,其开发灵活的代价就是运行效率明显低于 Native 程序,因为 JS 在设计之初根本没有料想到将来会在手机这样的微型设备上运行。通过系统硬件和软件的改进不断提升 JS 运行性能,是需要芯片厂商、操作系统厂商、浏览器内核厂商持续解决的。

  • 提升基于移动 Web 的渲染性能:笔者认为,操作系统、手机浏览器内核应用尽早实现和开放 webGL。webGL 的开放价值远不止于提供 3D 渲染,而是在于直接向 Web 应用开放硬件渲染能力。未来的渲染框架引擎,可以直接基于 JS+webGL 完成,而不需要依赖 Native 的渲染框架,这将帮助大量具备 HTML5 商用开发经验的团队灵活地实现和提供更有针对性的开发框架。甚至,DOM 体系的解析、布局和渲染,未来也可能基于 JS + webGL 直接实现。

本文作者Hans,移动互联网开发者,微信号1396255225

[本文来自读者的投稿,不代表36氪立场]

相关推荐

JPA实体类注解,看这篇就全会了

基本注解@Entity标注于实体类声明语句之前,指出该Java类为实体类,将映射到指定的数据库表。name(可选):实体名称。缺省为实体类的非限定名称。该名称用于引用查询中的实体。不与@Tab...

Dify教程02 - Dify+Deepseek零代码赋能,普通人也能开发AI应用

开始今天的教程之前,先解决昨天遇到的一个问题,docker安装Dify的时候有个报错,进入Dify面板的时候会出现“InternalServerError”的提示,log日志报错:S3_USE_A...

用离散标记重塑人体姿态:VQ-VAE实现关键点组合关系编码

在人体姿态估计领域,传统方法通常将关键点作为基本处理单元,这些关键点在人体骨架结构上代表关节位置(如肘部、膝盖和头部)的空间坐标。现有模型对这些关键点的预测主要采用两种范式:直接通过坐标回归或间接通过...

B 客户端流RPC (clientstream Client Stream)

客户端编写一系列消息并将其发送到服务器,同样使用提供的流。一旦客户端写完消息,它就等待服务器读取消息并返回响应gRPC再次保证了单个RPC调用中的消息排序在客户端流RPC模式中,客户端会发送多个请...

我的模型我做主02——训练自己的大模型:简易入门指南

模型训练往往需要较高的配置,为了满足友友们的好奇心,这里我们不要内存,不要gpu,用最简单的方式,让大家感受一下什么是模型训练。基于你的硬件配置,我们可以设计一个完全在CPU上运行的简易模型训练方案。...

开源项目MessageNest打造个性化消息推送平台多种通知方式

今天介绍一个开源项目,MessageNest-可以打造个性化消息推送平台,整合邮件、钉钉、企业微信等多种通知方式。定制你的消息,让通知方式更灵活多样。开源地址:https://github.c...

使用投机规则API加快页面加载速度

当今的网络用户要求快速导航,从一个页面移动到另一个页面时应尽量减少延迟。投机规则应用程序接口(SpeculationRulesAPI)的出现改变了网络应用程序接口(WebAPI)领域的游戏规则。...

JSONP安全攻防技术

关于JSONPJSONP全称是JSONwithPadding,是基于JSON格式的为解决跨域请求资源而产生的解决方案。它的基本原理是利用HTML的元素标签,远程调用JSON文件来实现数据传递。如果...

大数据Doris(六):编译 Doris遇到的问题

编译Doris遇到的问题一、js_generator.cc:(.text+0xfc3c):undefinedreferenceto`well_known_types_js’查找Doris...

网页内嵌PDF获取的办法

最近女王大人为了通过某认证考试,交了2000RMB,官方居然没有给线下教材资料,直接给的是在线教材,教材是PDF的但是是内嵌在网页内,可惜却没有给具体的PDF地址,无法下载,看到女王大人一点点的截图保...

印度女孩被邻居家客人性骚扰,父亲上门警告,反被围殴致死

微信的规则进行了调整希望大家看完故事多点“在看”,喜欢的话也点个分享和赞这样事儿君的推送才能继续出现在你的订阅列表里才能继续跟大家分享每个开怀大笑或拍案惊奇的好故事啦~话说只要稍微关注新闻的人,应该...

下周重要财经数据日程一览 (1229-0103)

下周焦点全球制造业PMI美国消费者信心指数美国首申失业救济人数值得注意的是,下周一希腊还将举行第三轮总统选举需要谷歌日历同步及部分智能手机(安卓,iPhone)同步日历功能的朋友请点击此链接,数据公布...

PyTorch 深度学习实战(38):注意力机制全面解析

在上一篇文章中,我们探讨了分布式训练实战。本文将深入解析注意力机制的完整发展历程,从最初的Seq2Seq模型到革命性的Transformer架构。我们将使用PyTorch实现2个关键阶段的注意力机制变...

聊聊Spring AI的EmbeddingModel

序本文主要研究一下SpringAI的EmbeddingModelEmbeddingModelspring-ai-core/src/main/java/org/springframework/ai/e...

前端分享-少年了解过iframe么

iframe就像是HTML的「内嵌画布」,允许在页面中加载独立网页,如同在画布上叠加另一幅动态画卷。核心特性包括:独立上下文:每个iframe都拥有独立的DOM/CSS/JS环境(类似浏...