写点什么

移动 HTML5 面对的问题

  • 2013-11-11
  • 本文字数:1397 字

    阅读完需:约 5 分钟

近期的一份研究报告,给出了与一般观点相左的结论,性能并不是 HTML5 面对的主要问题;相反,性能分析和调试工具的缺失,以及缺少某些特定 API 才是它的最大问题。

VisionMobile 对全球超过 6 千名开发者进行了调查,分析了超过 3 万款 Android Play 中发布的应用,评测了 42 款 HTML5 框架和工具,并就移动 HTML5 与原生应用之争的话题,访谈了 32 位顶级专家。最终,VisionMobile 对此进行总结,发表了研究报告《 HTML5 如何与原生应用竞争?》。以下是该研究中的一些最重要的发现。该报告划分出四类适合 HTML5 应用的主要市场路径:

  1. 移动浏览器——针对移动设备开发,适合运行在移动浏览器环境中的 Web 应用或网页。
  2. 原生应用包装——将 Web 应用封装到原生应用中,并通过应用商店发布。
  3. Web 到原生转换——使用 JavaScript 编写应用,并编译为原生应用。
  4. 原生的 JavaScript API——针对原生支持 HTML5 的平台编写应用,例如 Firefox OS、Windows 8 和 chrome OS 这样的平台。

该报告中的重要发现包括:

  • 61% 的开发者针对移动浏览器进行开发。
  • 在美国区 Android Play 的应用中,63% 的应用无法使用 HTML5 针对移动浏览器开发,因为浏览器还没有实现这些应用需要的某些 API 。
  • 在美国,37% 的 Android 应用可以使用 HTML5 实现,而如果浏览器能够增加电源管理和 WiFi 相关 API,那么这一数字将能够上升到 58%。
  • 39% 的开发者通过移动浏览器之外的其他三种市场路径创建 HTML5 应用。
  • 在美国,49% 的 Android 应用可以使用原生应用封装的方式;63% 可以使用 Web 到原生转换器的方式;而 98% 可以使用 JavaScript 的方式。

下图展示了 HTML5 吸引人的地方:

而下图展现了开发者对 HTML5 的抱怨:

许多开发者认为性能是 HTML5 的主要问题,但是在采访过这一领域的许多专家后,报告的作者认为性能是个“伪目标”,因为性能会随着硬件的更新换代、JavaScript 编译器的升级、Asm.js 等可选项的涌现等原因,而自动得到改善。在这些专家看来,首要问题与政治有关,更确切的说,由于主流浏览器供应商同时也是移动 OS 供应商,因此他们热衷于通过各自的应用商店来分发应用。Google 鼓励原生的 Chrome 应用,Apple 似乎打算实现最新的 HTML5 标准,但“却遗漏了性能相关的 API,例如 WebGL。”同样地,根据这份报告,HTML5 的神话之一,是开发很简单;但实际上开发很难——因为缺少充足的调试和性能分析工具。

在美国区的 Google Play 中,应用程序最常使用的 API 是:

目前的 HTML5 API 标准的状态,以及浏览器的支持情况,如下图所示:

如果某些特定 API 能够得以实现,那么对不同的市场路径造成的影响如下表所示。表中展现了如果拥有这些 API,使用 HTML5 开发的应用数量将会上升的比例:

市场路径

API

百分比

移动浏览器

电源管理

13%

原生应用包装

电源管理

12%

Web 到原生转换

WiFi

21%

原生 JavaScript API

日历

1.4%

针对 HTML5 领域,这份报告总结出的若干观察和推荐如下:

  • 浏览器应该实现更多的 HTML5 API,首先从电源管理和 WiFi 开始。开发者应该推动浏览器厂家实现更多的 API。
  • 原生 JavaScript 应用需要标准化打包解决方案,以便实现一次打包就能在任何支持的平台上部署的目标。
  • 应该开发设备身份识别 API,以减少与 cookie 和隐私相关的恐惧。
  • 开发者需要能够更好地获得 HTML5 相关知识,包括 HTML5 能够提供哪些能力、真正的优势和缺点。
  • 应该开发调试 API,以便创建一系列调试工具。

查看英文原文: What’s the Problem with Mobile HTML5?

2013-11-11 07:192018
用户头像

发布了 256 篇内容, 共 76.3 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

架构师1期-技术选型(一)作业

ltl3884

极客大学架构师训练营

食堂就餐卡系统设计

菜青虫

架构师训练营第1周学习总结

菜青虫

极客大学架构师训练营

【高并发】面试官问我:为什么局部变量是线程安全的?

冰河

多线程 高并发 高性能 线程安全 签约计划第二季

Netty源码解析 -- ChannelPipeline机制与读写过程

binecy

Netty nio 源码剖析

第13周总结

Vincent

极客时间 极客大学

SQL优化-分治思想

李印

MySQL SQL优化

架构师训练营第五周作业——一致性哈希算法

文智

极客大学架构师训练营

Git:使用Git之前的配置

bobo

git

1024|推荐一个开源免费的Spring Boot教程

Java旅途

Java 开源 Spring Boot

第13周作业

Vincent

极客时间 极客大学

二十二、 深入Python的进程和线程(上篇)

刘润森

Python

介绍几种微商常见的引流方式

boshi

营销 电商

一个程序猿应该具备哪些能力?

锐哥

程序员 1024讲话 1024

第五周 实现一致性 hash 算法

Geek_fabd84

架构师训练营第一周作业

TONNY

架构师训练营 - 第五周 - 作业二

行者

代码作业

Geek_4c1353

极客大学架构师训练营

ping TCP端口的实用小工具tcping

网络 ping tcping

2020年的Java程序员面试三件套:多线程+算法+微服务

Java架构师迁哥

周练习 5

何毅曦

一个大型的互联网应用系统使用了哪些技术手段

kawayi

并发环境下,先操作数据库还是先操作缓存?

捡田螺的小男孩

数据库 缓存 后端 并发

架构师训练营 第一课作业

文江

架构师训练营第五周作业

我是谁

极客大学架构师训练营

架构师训练营 -week05-总结

大刘

极客大学架构师训练营

关于Java面试必备的Java集合知识,终于有大佬总结整理出来了!

Java架构之路

Java 程序员 架构 面试 编程语言

架构师训练营 - 第五周 - 作业一

行者

学习总结

TONNY

架构师训练营 1 期第 5 周:技术选型(一) - 总结

piercebn

极客大学架构师训练营

golang实现一致性 hash 算法

Jacky.Chen

移动HTML5面对的问题_移动_Abel Avram_InfoQ精选文章