HTML5与原生Android应用程序优势与劣势

移动应用程序开发人员提出的一个常见问题是,“我应该使用HTML 5构建我的应用程序,还是构建本机?”。 您选择其中任何一种原因的原因有很多,而且两者的支持者都有非常有效和令

移动应用程序开发人员提出的一个常见问题是,“我应该使用HTML 5构建我的应用程序,还是构建本机?”。

您选择其中任何一种原因的原因有很多,而且两者的支持者都有非常有效和令人信服的论据。通过本文,我们将探索各种类型的应用类别,并讨论这两种方法的优缺点。

定义

在我们开始之前,我们应该定义术语,HTML5应用程序和Native应用程序,以防止含糊不清,以及评论中不必要的参数。

如果您打算开发图形密集型游戏,您几乎肯定想要构建本机应用程序。

出于本文的目的,本机应用程序是指完全使用特定操作系统本机技术构建的应用程序。这可能是Android,iOS,Windows,Blackberry等。

对于Android,本机应用程序通常使用Java构建,而对于iOS,可以使用Objective C或(最近)使用Swift构建本机应用程序。

另一方面,HTML5应用程序是指完全使用HTML,CSS和Javascript构建的移动应用程序。HTML5应用程序是Web应用程序,必须使用底层操作系统浏览器运行。

请注意,HTML5支持离线数据以及富媒体,如音频和视频。即使设备处于脱机状态,或者至少显示错误消息,也可以使用编写良好的HTML5应用程序。

HTML5和Native Apps的比较

可移植性

HTML5应用程序可跨不同的操作系统和设备类型移植。使用响应式设计方法编写的HTML5应用程序也可以根据当前查看的设备大小进行适当缩放。

当需要更新时,单个应用程序将进行更新和测试,并立即可用于所有设备。

根据定义,本机应用程序对于每个操作系统都是唯一的,因此,为了支持多个移动操作系统,必须为每个操作系统编写单独的应用程序。需要更新时,每个应用必须单独更新,并独立测试。

Android应用程序不会自动修改布局以匹配设备的大小,但是,在开发期间,可以为不同的设备/屏幕大小和方向指定不同的布局。

与自动响应式设计HTML5应用程序相比,这通常会导致布局更美观,尽管需要更多的努力和计划。

获奖者:HTML5

发展成本

HTML5应用程序的开发和维护通常比本机应用程序更便宜,因为只有单个应用程序才需要多个操作系统支持。这个单一的应用程序可以由一个Web开发人员开发。

但是,所有主要移动操作系统的本机应用程序通常需要为每个操作系统(Android的Java,iOS的Objective C / Swift,Windows的C#)的专业开发人员,这将比单个Web开发人员贵得多。

获奖者:HTML5

速度和效率

原生应用程序几乎总是比HTML5应用程序更高效,更快。尽管在提高Javascript解释器的速度方面取得了长足进步,但HTML5应用程序无法以与具有类似功能的本机应用程序相同的速度执行。

Apple的App Store可以拒绝太慢或不够原生的应用程序,这比使用完全原生应用程序更有可能发生在HTML5应用程序中。

获胜者:原生

使用硬件

原生应用可以与设备上的各种硬件进行交互,包括位置,相机,加速度计,扬声器,屏幕等。

HTML5应用程序与硬件交互的能力不同,这可能是一个主要的交易破坏者,具体取决于应用程序所需的功能。

获胜者:原生

如果您需要以最快的速度在多种移动操作系统类型上提供最低成本的应用程序,HTML5应用程序几乎总是首选的方式。

但是,如果您的应用需要使用特定于设备的硬件,或者需要快速运行,那么使用本机解决方案可以做得更好。

混合应用

html5_vs_native_hybrid

但是,与大多数与计算机相关的事情一样,有多种解决方案。还有第三类应用程序,称为混合应用程序。

混合应用程序使用语言/框架构建,然后用每个所需移动操作系统的本机特定代码包装。例如,您使用HTML5,CSS和Javascript构建应用程序,然后为Android,iOS和Windows设备生成围绕应用程序的包装器。

无论如何,最终产品是每个平台的本机应用程序,但是,它们共享一个代码库。对于最终用户,混合应用程序与本机应用程序没有区别。流行的混合应用程序框架包括Apache Cordova(以前的PhoneGap),Appcelerator Titanium,Appear IQ,CocconJS和Appzillon等。

虽然混合应用程序并非全是好的。有利有弊:

优点

混合应用程序与HTML5应用程序一样可移植。它们允许跨平台重用代码,框架处理所有特定于平台的差异。

混合应用程序的构建速度几乎与构建HTML5应用程序的速度相同。基础技术是一样的。

混合应用程序的构建成本与HTML5应用程序几乎相同。但是,大多数框架都需要许可证,这会增加额外的开发成本

混合应用程序可以通过相关的应用程序商店提供和分发,就像本机应用程序一样

与普通的HTML5应用程序相比,混合应用程序可以更好地访问本机硬件资源,通常通过相应的框架自己的API。

缺点

并非所有本机硬件资源都可用于混合应用程序。可用功能取决于使用的框架。

混合应用程序对最终用户显示为本机应用程序,但运行速度明显慢于本机应用程序。由于苹果App Store上的速度太慢而被拒绝的HTML5应用程序的限制同样适用于混合应用程序。渲染复杂的CSS布局所需的时间比渲染相应的原生布局要长

每个框架都有自己独特的特性和做事方式,这些方法在给定框架之外并不一定有用。

虽然HTML5与本机应用程序的争论仍然存在,但值得一提的是,开发HTML5,本机或混合应用程序确实存在数十个有效理由。但是,最关键的问题不应该是“我们应该使用什么技术来开发?”,而是“应用程序做什么?”。应用程序打算执行的功能,如果充分说明,通常会回答适当的技术。

如果你打算开发一个图形密集型游戏,你几乎肯定想要构建一个原生应用程序,以便为用户提供最快,最灵敏的游戏。

如果您正在为企业编写应用程序以便随时随地访问公司信息,您可以在混合或HTML5应用程序之间做出决定,特别是如果您的应用程序不需要使用设备硬件,并且应该可以在用户的首选设备。

如果您正在开发一个应用程序,这是您的业务的核心,如Instagram,您可能希望构建一个本机应用程序,为您的用户提供最佳体验,或混合使用,以便它可以被许多用户使用,在尽可能多的设备上。

原文链接:http://www.kmyunruan.com/news/html5news/article_135.html

编辑于

手机app开发

1 篇文章2 人订阅

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券