英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料
比较手机app的性能参数发展战略
摘要
移动跨平台工具(CPTs)为本地开发提供了一个有趣的选择。跨平台工具的目标是在不同平台的实现之间共享应用程序代码库的重要部分。这可以大大降低移动应用程序的开发成本。然而,移动应用程序开发人员不太愿意采用这些工具。原因之一是CPTs的环境非常多样化,很难选择最合适的CPT来实现特定的应用程序。本文的贡献是双重的。首先,本文对一款功能齐全的手机应用程序进行了性能分析,该应用程序使用了十种跨平台工具实现,并可用于Android、iOS和Windows Phone。性能测试在高低端Android和iOS设备以及Windows Phone设备上执行。其次,基于性能分析,得出了应用程序开发人员在选择特定(类型)跨平台工具时应该注意的一般结论。
关键字
手机应用开发,跨平台工具,性能分析,Android, iOS, Windows Phone
1. 介绍
智能手机为用户提供了许多新的服务。此外,服务提供商正试图通过智能手机提供服务,来吸引新用户,并更有效地支持现有用户。为了增加收入,服务提供商希望通过移动服务接触尽可能多的用户。然而,由于智能手机和平板电脑市场的碎片化,在所有移动平台上提供服务的成本非常高。尽管Windows正在扩大其用户群,但iOS和Android仍是[23]市场上最大的玩家。
为每个平台开发本地应用程序大大增加了开发成本。而本地应用可以充分利用特定移动平台的特性,在不同的实现之间可以共享有限的代码或不共享代码。每个平台都需要专用的工具和不同的编程语言(例如Objective-C、c#和Java)。此外,维护(例如更新或bug修复)可能非常昂贵。因此,应用程序开发人员面临着巨大的挑战。一个有前途的替代方案是移动跨平台工具(CPTs)。在多个平台的实现之间共享代码库的重要部分。此外,许多跨平台工具使用基于web的编程语言来实现应用程序逻辑。这有助于具有Web背景的程序员开始开发移动应用程序。
目前有100多种不同的CPTs[28]。每个跨平台工具都依赖于特定的技术和编程语言。选择最合适的工具不是闲差事。尽管对CPTs存在相当多的怀疑,尽管[28]的调查显示,过去对开发过程的总体满意度很低,但许多工具在过去几年变得更加成熟。因此,看看这些工具是否能够克服怀疑论,并为本地开发提供一个可行的替代方案,是很有趣的。
以往的研究主要集中在CPTs的定性分析和评价上。其中,它们提供许可成本、可用支持、编程语言和开发环境方面的见解。虽然这些参数在选择合适的CPT时当然很重要,但它们只解决选择过程中的特定问题。应用程序在不同平台上的性能也是一个关键因素。这正是我们研究的范围。
贡献。本文给出了跨平台应用程序的定量性能分析结果。一组与移动应用程序行为相关的性能参数是使用一个全功能的应用程序定义和评估的,该应用程序使用iOS、Android和Windows Phone的本机开发策略实现,并使用10种常用/有前途的跨平台工具。这些实现的性能参数是使用高低端Android和iOS设备以及Windows Phone设备进行评估的。根据分析的结果,得出了应用程序开发人员在选择特定(类型)跨平台工具时应该注意的一般结论。该分析基于现有的第三方移动应用程序PropertyCross1。这个应用程序是使用原生iOS开发的,Android和Windows Phone的开发策略以及跨平台开发策略与多款CPTs。这项工作的范围是分析与一般应用程序行为相关的性能参数。此行为不依赖于应用程序的特定类型或功能。分析是使用每个工具中由专家实现的全功能应用程序完成的。因此,分析的结果应该对所选工具实现的应用程序具有代表性。有关PropertyCross应用程序的更多信息见第4节。
最初的性能分析结果在[29]中作为正在进行的工作发布。对两种跨平台实现进行了评估。本文以多种方式扩展了我们以前的工作。首先,测试更多的工具。这使我们能够涵盖许多不同的跨平台开发技术,并得出更有代表性和更广泛的结论。其次,加入了Windows Phone的比较。因此,本研究涵盖了三种最常用的移动平台(占智能手机市场95% %)。最后,对移动应用开发策略的选择进行了深入的指导。
本文的其余部分结构如下。第二节指出了相关工作。第3节讨论不同类型的跨平台工具。在第4节中,介绍了用于性能评估的应用程序以及所选的10个CPTs。第5节概述了用于性能测试的五种设备。评价标准和测量工具将在第6节中讨论。在下一节中,将介绍并讨论性能测试的结果。在第8节中,给出了应用程序开发人员在选择特定(类型)跨平台工具时应该注意的一般结论。最后一部分给出了结论,并指出了今后的工作。
2. 相关工作
Zibula等人给出了不同CPTs所使用的技术的详细概述。其他定性分析见[25,27]和[18]。Xanthopoulos[30]展示了一个使用多个CPTs实现的演示应用程序。他们的分析主要集中在图形用户界面和用户体验方面。Rahul等人提出了一种基于定性性质的CPT选择策略。
提供性能性能定量分析的研究数量相当有限。Dalmasso等人使用四种不同的跨平台工具为Android构建了一个演示应用程序。演示应用程序用于测量和评估CPU使用情况、内存使用情况和电池消耗情况。然而,他们没有使用本地应用程序作为基准来评估CPTs的行为,也没有评估iOS平台上工具的行为。Ciman等人的[17]研究了使用不同的跨平台开发方法对能源消耗的影响。Corral等人在PhoneGap应用程序中分析访问不同设备特性和传感器时的响应时间,并将结果与本机方法进行比较。
3.跨平台发展战略
跨平台工具通常分为五类:JavaScript框架、web到本机包装器、运行时、源代码翻译器和应用程序工厂。应用程序工厂允许没有编程经验的人使用拖放机制制作简单的应用程序。在使用app factory时,可用的特性和可定制性是相当有限的,因此本文不再进一步讨论它们。
3.1 JavaScript框架和web到本机包装器
JavaScript框架使用Web技术开发移动应用程序。应用程序的用户界面是用HTML和CSS开发的,函数性是用JavaScript实现的。与其他JavaScript框架相比,移动JavaScript框架支持实现特定于移动应用程序的用户界面和导航模式。与普通网站相比,这些移动界面是为更小的屏幕设计的,例如,为移动设备的触摸UI提供支持。一些框架还提供了本地皮肤,可以根据运行应用程序的平台的外观来定制应用程序的UI。然而,这些皮肤还不能提供完全的本地体验。大多数JavaScript框架还支持传统的设计模式,如MVC和MVVM,以促进良好结构和可维护代码的开发。这些工具的一个主要优势是,它们使Web开发人员能够参与移动应用程序开发。
可以应用两种分发策略。最灵活的解决方案是将Web应用程序驻留在Web服务器上。用户可以在移动浏览器中通过浏览Web应用程序的URL来访问Web应用程序,而不需要考虑用户的平台。然而,这种策略也有几个缺点。应用程序的可用性和响应性部分取决于平台的Internet访问。此外,应用程序的功能受到浏览器JavaScript API的限制(例如,访问加速度计和GPS等传感器),访问应用程序比启动安装在设备上的应用程序更麻烦。第二种策略是使用Web-to-native包装器将Web应用程序打包成独立的应用程序。打包后的应用程序安装程序可以提交到不同平台的应用程序商店。Web应用程序不再在浏览器中运行,而是在一个与应用程序打包在一起的无chromewebview中运行。Web-to-native包装器还提供了一个JavaScript桥接,与浏览器相比,可以访问更广泛的平台api。
在本文中,所有测试都在安装在不同设备上的打包Web应用程序上运行。
3.2运行时和源代码翻译器
运行时是保护应用程序不受底层平台差异影响的兼容性层。在大多数情况下,编译步骤将源代码转换为运行时上运行的二进制或中间语言。在少数工具中,源代码将直接在运行时上运行(例如Titanium)。有些工具(例如NeoMAD)不依赖于运行时,而是将源代码转换为用于不同平台的本机源代码。对于每个平台,生成的源代码都使用平台开发人员提供的开发工具进行编译。在大多数情况下,运行时和源代码翻译器使用真正的本地UI组件,提供真正的本地体验。
4. 测试应用和CPT选择
性能分析基于PropertyCross应用程序。PropertyCross是一个社区驱动的项目。在这个网站上,有超过20个跨平台工具描述和实现了一个概念应用程序。属性交叉应用程序使用户能够基于城市名称或GPS位置搜索待售的属性。此外,用户还可以收藏与搜索历史记录一起保存在本地存储中的属性。PropertyCross应用程序是一个功能齐全的应用程序,具有多个屏幕、Web访问、GPS定位和本地存储。
使用现有应用程序而不是创建新应用程序的优点有两方面。首先,学习工具和实现应用程序非常耗时。此外,PropertyCross网站上的每个实现都是由具有使用该工具的经验的程序员开发的。这将产生更好的代码质量,从而确保更有代表性的度量和结论。
在选择用于性能分析的跨平台工具时,考虑了几个标准。首先,可以使用该工具使用PropertyCross实现。这并不限制我们的研究,因为最著名和经常使用的跨平台工具都支持[28]。第二,设法选择各种不同的技术、编程语言和发展战略。总共选择了10个跨平台工具,包括常用的跨平台工具(如Xamarin, Titanium (Appcellerator)和Sencha Touch 2)以及几个有前景的工具(如Ionic和NeoMAD)。这个选择包括4个运行时/源代码翻译器和6个JavaScript框架。
4.1 JavaScript框架和web到本机包装器
PhoneGap[10]是最著名和使用最多的web到本机包装器。许多JavaScript框架都提供了与PhoneGap的自动集成,以便为不同的平台生成可安装的应用程序。本节将进一步讨论所选的JavaScript框架,这些框架都使用PhoneGap作为Web-to-native包装器进行评估。
bull;Ionic[5]是一个基于angular的[2]JavaScript框架。Ionic的主要关注点是应用程序的外观和UI。此外,AngularJS的使用通过提供MVC支持简化了开发。Ionic还提供了本地皮肤,可以增强应用程序的用户体验。
bull;Sencha Touch 2[12]是最流行的JavaScript框架之一。该工具专门提供开箱即用的本机外观的UI组件。它支持几个移动UI功能(例如从横向切换到纵向,典型的移动导航模式hellip;)这也提高了用户体验。此外,Sencha还要求使用MVC设计模式。
bull;jQuery Mobile[6]是一个基于jQuery的JavaScript框架,允许开发者创建响应性强的网站。
bull;Intel App Framework (IAF)[4]也是jQuery的移动优化版本。在轻量级jQuery库的基础上,它还提供了MVC框架、额外的UI组件和本机外观。
bull;MGWT[7]是谷歌Web Toolkit的移动版本。MGWT使用一种独特的方法来开发JavaScript应用程序。应用程序是用Java编写的,在编译时自动转换成JavaScript (cf. GWT)。MGWT和GWT之间的主要区别是支持特定的移动应用程序特性(例如移动小部件和触摸导航)。这种方法的一大优点是,使用MGWT可以非常容易地将现有GWT应用程序转换为移动应用程序。
bull;Famou。us[3]是一个开源JavaScript框架,它用自己的渲染引擎代替了标准浏览器基于dom的渲染机制。这个框架的主要关注点是通过使用GPU加速来构建高性能的web应用程序,允许60帧每秒。
4.2运行时和源代码翻译器
bull;Adobe AIR[1]代表Adobe集成运行时。应用程序使用HTML、JavaScript、Adobe Flash、ActionScript以及Apache Flex进行编程。adobeair不支持Windows Phone。
bull;NeoMAD[9]使用源代码转换,不依赖于专用的运行时环境。应用程序是使用Java实现的。然后将Java代码转换为每个平台的本机源代码。生成的源代码比使用每个平台的本机开发工具编译的源代码要多。
bull;Titanium (Appcelerator)[13]应用程序完全是用JavaScript编写的,使用的是运行时元素。尽管这种策略看起来类似于JavaScript框架与web到本机包装器的结合,但是这两种技术之间有明显的区别。web到本机包装器使用webview元素来显示UI。在Titanium中,JavaScript代码通过运行时完全映射到本地组件。这意味着用户界面实际上由本地UI组件组成,从而产生真正的本地体验。但是,映射并不包括完整的本机API。目前Titanium还不支持Windows Phone。
bull;Xamarin[15]使用c#作为编程语言,使用开源的Mono框架[8]。Xa-marin在每个受支持的平台上使用不同的机制。在Android中,源代码被翻译成一种中间语言,并与Mono运行时捆绑在一起。Mono运行时在运行应用程序时使用jit编译。在iOS中,
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[238710],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。