防疫信息上报管理系统设计与实现外文翻译资料
2022-12-28 16:54:31
本科生毕业设计(论文)外文资料译文
( 2021届)
论文题目 |
防疫信息上报管理系统设计与实现 |
一、外文资料译文:
跨平台移动开发框架中性能开销的实证研究
关键词:跨平台开发,移动应用程序,性能基准,开发方法
领先的移动平台在用户界面、用户体验、编程语言和生态系统方面具有异质性,即不统一性,这使得跨平台开发框架广受欢迎。使用跨平台开发框架有助于创建移动应用程序,这些应用程序可以在目标平台(通常为Android和iOS)上执行,而限制于固定平台的代码很少甚至没有。由于采用这样的框架带来了节省成本和时间的可能性,因此研究人员和从业人员都对跨平台开发框架的底层技术产生了兴趣。但是,在研究跨平台开发框架的架构体系时,我们经常遇到关于这些框架的弊端的讨论,尤其是关于它们生成的应用程序的性能方面的讨论。由于正在进行的激烈争论以及缺乏经验证据的证明,我们仔细研究了跨平台框架的基本组成部分-----使跨平台代码与底层操作系统和设备硬件API进行通信的桥梁。我们在文章基准测试中提供的研究结果旨在衡量该“桥梁”的性能,以揭示其在Android应用程序中的相关开销。除了最基础的原生Android应用程序的实现之外,还使用五个跨平台开发框架来生成Android应用程序,从而进行了本实验所要求的目标组件的开发。我们的结果表明,对于Android应用程序而言,与原生开发方法相比,使用跨平台框架开发移动应用程序可能会导致性能下降。但是,某些跨平台框架在某些指标上的性能可以与原生平台相同甚至更好,这突显了明确定义的技术要求和规范对于是否选择跨平台框架或整体开发方法的重要性。
- 介绍
由于引入了具有使用应用程序功能的智能手机(Macedonia 2007),移动应用程序受到了开发商和终端用户的极大欢迎。在两个主要的移动应用程序市场Google Play Store和Apple App Store中,用户获取量、应用程序下载量和销售量的惊人增长尤其突出了这一点(Jansen和Bloemendal,2013年)。经过数年的整合,Android和IOS这两个操作系统的双龙头垄断在2018年占智能手机销量的99%以上(Statista Inc 2018a)。这两个生态系统加在一起,仅在2017年就创造了586亿美元的收入,比上一年(Nelson 2018)增长了30%。在估计6.3万亿美元的软件经济规模中,有580万种专用于智能手机的软件应用可在各种软件应用市场中获得(Statista Inc 2018b)。应用的发展是一个持续向上、不断扩张的过程,模糊了智能手机和平板电脑、消费类电子产品、物联网(IoT)甚至汽车之间的界限(Rieger和Majchrzak 2018),这也与智能手机无处不在的可用性和智能手机用户的数量相对应。根据最近的报告,估计有38亿个体用户拥有智能手机,并且有望进一步增长(Statista Inc 2016)。为了使个体和公司成为应用程序经济的一部分,因此需要以移动应用程序的形式存在于移动应用程序商店中。
一般来讲,移动应用程序的创建是在每个平台上进行的,这意味着无法将应用程序部署到不是专门为其开发的平台上。这种开发类型通常称为原生开发方法,因为这些应用是使用专门为每个平台(即本机)设计的工具和语言编写的。这种开发方法的一个重大而内在的后果是,如果一个应用程序希望吸引多平台的用户,则该应用程序的整体必须编写两次:一次用于使用Android Studio和Java,Kotlin或C 的Android,第二次iOS使用Xcode和Objective-C或Swift(Groslash;nliet al.2014)。总体而言,这需要多种编程语言、不同的用户界面和经验设计准则、开发环境、生态系统等方面的知识。设备碎片化使问题变得更加严重:尤其是Android不仅拥有许多版本,而且供应商还进行了自定义的修改。操作系统API会随着时间的推移而发展,并且设备在各种功能以及硬件规格上存在差异(Wei等人,2016)。研究无法保证以公认的方式开发的应用程序在理论上兼容的众多设备上真正有用。
鉴于与原生开发相关的成本和知识要求很高(Heitkouml;tter和Majchrzak,2013年),开发时可以使用其他的替代的方法(El-Kassas等人,2017年)。这些通常被称为跨平台移动开发,这是一个涵盖广泛的概念开发方法和技术框架的总称(Rieger和Majchrzak 2019),用来简化应用程序的创建(Bioslash;rn-Hansen等人2018)。通常,尽管框架和方法之间的跨平台代码共享级别有所不同,但单个代码库可用于生成指定平台的应用程序或生成可跨多个平台部署的应用程序,几乎没有针对特定平台的修改。但是,尽管跨平台开发框架可以帮助开发可跨多个平台执行的应用程序,但某些案例研究表明,公司和行业从业人员会利用跨平台框架来开发单平台应用程序。一项最近的案例研究描述了在线艺术平台Artsy利用Facebook的React Native框架来使用JavaScript编写移动应用程序,因为这是其内部技术能力最强的地方(Therox 2019)。在线旅游平台Townske的更近期的案例研究描述了相同的情况:使用跨平台框架进行单平台开发,开发人员的经验和内部JavaScript知识是选择该方法而非原生方法的核心原因(McPherson 2019)。
因此,使用跨平台框架开发移动应用程序并不必然意味着开发跨平台应用程序是最终目标,也可能是其他因素,例如内部技术能力。也有许多研究从单平台的角度探索跨平台的开发方法和技术,例如Corbalaacute;n等人在Android上对非功能性需求进行性能测试(2019),Bai等人在Android研究跨平台应用程序的网桥安全性(2019),以及Malavolta等人在Android上的Progressive Web Apps中测试跨平台应用程序对能源消耗的影响(2017)。对于当前的研究,我们将跨平台框架用于单平台开发。每个代码库都是为Android构建的,然后在一系列Android手机上执行基准测试。我们在研究设计中进一步阐述了这一点,并建议针对iOS也进行类似的研究。尽管使用这种方法生成的应用程序在应用商店中仍然没有像原生应用程序那样常见(Viennot等人,2014年),但领先的技术公司通过引入跨平台框架已经注意到了业界对跨平台技术的明显兴趣。,包括Facebook(React Native),Google(Flutter)和Progress(NativeScript)。
在学术界和行业中,使用跨平台开发的应用程序的性能是经常讨论的。一些研究表明,跨平台应用会有固有的性能损失(Angulo和Ferre 2014a),但是终端用户在日常使用中可能不会感受到负面影响。 然而,现在已经发现选择合适的技术开发框架对预期效果有很大影响(Corbalan等人2018)。 此外,以跨平台方式开发的应用程序的开销是否是固有的尚不清楚:由于进行了优化,使用框架所产生的代码可能会优于手写代码; 与在编译时优化的应用程序相比,解释后的应用程序可能会进行运行时优化,从而带来更好的性能。
我们已着手证实争论中的观点,而我们的主要动机是有关跨平台技术效率的发表的言论(例如Latif等人2016a; Ahti等人2016; Ribeiro和da Silva 2012; Delacute;aa等人2017)。 经常有人争辩说,性能开销是由框架和本机设备访问之间的桥接组件引入的(Latif等人,2017)。 最近一项研究跨平台移动开发的行业观点的研究结果表明,与原生应用程序相比,性能损失实际上是跨平台应用程序面临的最大挑战(Bioslash;rn-Hansenet al.2019)。 因此,建议不要在生产项目中采用跨平台框架。 但是,根据我们对相关文献的调查,该性能参数尚未进行测量和经验评估,这在跨平台开发的知识体系中留下了一个有趣的空白。
在整个研究过程中,我们研究了五种用于跨平台移动应用程序开发的技术,以及用于比较和分析目的的本机开发方法。 我们测量从执行一组典型任务到返回结果所花费的时间。 此类任务比如编程实现从设备的文件系统中检索文件,查询设备GPS坐标或侦听加速度计、传感器数据等。
于是我们研究了开发人员可以在跨平台的高效的应用程序设计和开发中利用的技术,从而有效地将应用程序投入庞大的操作系统软件生态而无需从头开始多次开发相同的应用程序。 更具体地说,我们采用与原生应用程序开发不同的开发方法,来衡量由多个应用程序开发工具和框架引入的性能开销。 我们的研究问题如下:
与本地移动开发相比,跨平台移动开发框架在何种程度上施加了与性能相关的额外开销?
这项研究的主要贡献是通过测量单个硬件或平台功能对性能的影响并进行实证评估来研究使跨平台开发框架能够提供与原生应用程序开发中实现的功能类似功能的技术。我们总共开发了六个同型软件,并使用性能分析工具来衡量使用六个技术开发框架生成的这些应用程序的性能。与大多数研究跨平台开发框架性能的研究不同,我们使用多种技术开发了同型软件,包括模型驱动开发方法、混合方法、解释方法、交叉编译方法和原生方法。研究中包括最近发布的框架,该框架声称将业务逻辑与原生用户界面(UI)组件相结合,并且尚未被以前的文献进行彻底的研究。上述的方法与我们的目标一致,即通过包含各种各样的智能手机设备、框架和可测量的功能,将重点放在结果的有效性和泛化性上,而不是某些个别应用程序的实现。
除了核心贡献之外,我们的文章还描述了我们的可复用的方法,该方法可以用作进一步性能研究的蓝图。 此外,我们通过情境化研究并讨论我们的结果,以丰富研究的理论体系,并分享对跨平台框架的性能比较的见解。
本文的其余部分结构如下。 在第2节中,我们将在调查的背景下重点介绍和讨论相关工作,并回顾跨平台框架性能的研究现状。 第三部分介绍了用于研究的研究方法和实验方案的设计。 然后,在第4节中介绍我们的研究结果,接着在第5节中讨论有关该主题的相关工作和一般性研究的发现,以及有关研究的局限性和研究方向的想法。 最后在第6节中介绍我们的工作总结。
- 背景和相关工作
与跨平台移动开发框架的使用相关的性能和开销的测量一直是先前工作的重点。 在本节中,我们首先通过概述不同的跨平台应用程序开发方法来介绍背景。 随后,我们在广泛研究的基础上介绍性能测量的相关工作。
2.1、跨平台开发方法的概述
使用特定供应商提供的软件开发工具包(SDK)为每个目标平台分别开发应用程序。用户只能选择有限的受支持的编程语言,具体语言选择取决于每个目标平台。 例如,Android支持Java,Kotlin和C ,iOS支持Objective-C和Swift。完全控制特定平台的API的优势是使用不同的跨平台技术开发应用程序的基准。
通常,跨平台开发使用可以在多个平台上执行的独立代码库。从这个意义上讲,平台通常是指由软件或硬件供应商提供的不同操作系统,例如,Android或iOS。另外,设备的不同可能导致同一基础操作系统的不同版本被视为不同的平台。例如,Android通常是由硬件供应商针对特定设备量身定制的,或者用户界面进行了重大更改(例如,Android材质设计),并且随着平台的发展,可能会出现新的API(Li等人,2018; Wei等人,2016;Scalabrino等人.2019)。根据El-Kassas(2017)和Heitkouml;tter (2013年)等人的分类,应用程序可以使用几种不同的方法创建跨平台应用程序。我们将使用本节的其余部分详细介绍图1中的每个应用程序类别。请注意,尽管这种分类有助于区分主要特征,但某些框架会合并不同的方法(例如ICPMD El-Kassas等人2016)或研究和使用完全不同的方法,例如Tang等人(2011)的针对基于云基础架构的单客户端应用程序。此外,也可以使用非常不同的技术来提供类似的功能。
|
(渐进式)Web应用程序:移动Web应用程序本质上是使用Web技术(例如HTML,CSS和JavaScript)开发的Web应用程序。它针对智能手机(和平板电脑)的屏幕分辨率进行了优化。因此,该应用程序无法安装在设备上,而是在相应的平台浏览器中执行。过去几年中,随着移动浏览器环境对各种API的标准化和支持不断提高,可以访问诸如位置和数据存储之类的设备功能。为了防止出现类似网站的外观和感觉(Heitkouml;tter等,2013b),Google最近推出了渐进式Web应用程序(PWA)。 PWA通过所谓的serivce workers(允许在后台线程中运行代码)、Web应用清单(提供元数据)、脱机功能以及类似安装的用户体验来改进传统的W
剩余内容已隐藏,支付完成后下载完整资料
英语原文共 44 页,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[269878],资料为PDF文档或Word文档,PDF文档可免费转换为Word