微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络业界新闻 > 混合Web应用—全世界最好的手机应用开发

混合Web应用—全世界最好的手机应用开发

时间:05-23 来源:3721RD 点击:

Tuukka Ahoniemi, Technical Product Marketing Manager, Digia, Qt

移动应用开发者面临两难选择。移动设备的情况是分散且快速发展的。要确保能占据尽可能多的市场份额,应用程序需要支持多种操作系统环境,例如Android,iOS和黑莓OS。但是这些操作系统环境有着不同的架构和应用程序接口(APIs),使得很难编译一个单件的源代码就能够直接在不同的设备上运行。

强大的性能带来强大的软件移植工作

原生应用程序开发使用的语言如C++和Objective-C提供了最佳性能,并且与主机操作系统集成,但是它是有代价的。开发团队需要了解每一个目标运行系统的详细结构和使用的特定APIs以及编程语言。除了在提供APIs的方式上不同,设计专为操作系统上应用的程序结构也可能存在差异。这就意味着在进行移植时仅仅使用不同的APls复制应用程序代码并不一定可行,而需要将其进行全新设计。因为所有目标平台上的漏洞和新性能需要被设计,部署和调试,这就当然会使不同的目标系统下难以产生一致的行为。

即使是在单一的平台上,操作系统对应用程序频繁的更新需求也是为了利用新的用户界面技术,并保持符合本地平台应用的美好外观和感觉。使用本机代码应用程序,开发人员必须密切关注相关APls可能发生的变化,它们都用来确保每个连续的更新不会影响性能或者引入错误。我们需要的是用一些方法来对相关的操作系统细节进行抽象概括,从而让一个单一的代码库能够在多个目标上运行。

已经在桌面语言上对应用程序提供跨平台的可移植性尝试,但它们仅获得了有限的接受。举个例子,Java现已被广泛地部署在服务器上,但专注於台式机应用程序的开发人员还是倾向于留在Windows,Linux和OS X的本地语言和API上。

原生应用程序一般有更高的性能,可直接进入操作系统资源从而具有使用该平台的原生用户界面(UI)元素的优点,并让它们和系统中的其他应用程序具有一致的外观。在Windows上运行的应用程序应该像一个Windows应用程序,而很多时候,基于Java的应用程序看起来与核心操作系统格格不入。

HTML5 也并非最强一招

智能手机的到来以及其基于Web的应用带来了希望,超文本标记语言(HTML)可能会形成一个通用的应用程序开发语言和APl基础。通过Javascript﹑HTML标记和层叠样式表(CSS)第3版定义的组合,HTML5使得它可以在将多媒体部署于任何移动平台上,并一贯支持该标准。近年来,虽然不同平台上的浏览器支持HTML5的 情况有所改善 – 其中一些已经帮助了在移动环境中的广泛采用开源的WebKit浏览器技术 – 但是仍存在的是内部功能实现的差异以及浏览器引擎的不同端口之间的竞争。例如谷歌将他们的浏览器引擎从WebKit项目中分解出来,在基本的WebKit的开发上只剩下苹果和其平台。这又增加了网络技术的分歧,使得应用程序开发人员必须针对不同目标浏览器的实施而努力。

浏览器的实现在某些方面上有所差异,比如他们如何解读表单元素。例如,浏览器可能无法处理类型更复杂的数据结构,比如说列举一周中各天的数据。同样地,不同的显示元素可能丢失或者仅被部分支持。虽然那些元素的功能可以经常使用自定义CSS和JavaScript来模拟,但是这增加了开发周期,并要求服务器上的浏览器监听代码或者移动客户端上的更复杂的JavaScript正确呈现在应用程序上。那些更复杂的应用需求,如事件处理,动画和视频都被浏览器以不同的方式来处理,它们要求相对应的定制开发工作,从而实现这些功能的有效模拟。

更进一步来说,使用HTML5的移动应用开发更为重要的问题是,它依赖于一个有效的互联网连接。这可能适用于那些提供实时数据馈送的应用程序。使用服务器传送的HTML5 具有可以为应用程序定期更新软件的优势,这是因为新的代码可以在没有经过应用程序运营商预先许可的情况下进行部署。但是,对于有效的互联网连接的某项要求恰好是软件中的一个固有缺陷,例如单用户游戏中,特别是用户在国外漫游的时候,为了避免收到运营商的账单通常禁用网络连接。存储在移动设备上的本机代码本身就允许通过网络访问进行更精细地控制。同样,采用本地代码实现安全性能和I/O设备接入比HTML5更加容易。在很多情况下都可以从HTML5访问到一些外设,如照相机。

另一方面,HTML5通过本地连接能够启用更加动态的内容,并且运行网页浏览器内的任意内容,但是却不可以再移动应用程序上予以实现。应用程序用户界面有部分会被显示或者直接在web的常规页面应用,本机UI方法不能被带入浏览器。

HTML5允许直接在移动应用程序中重复使用常规web页面

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top