我们如何在Aurora OS(Sailfish Mobile OS RUS)上开发移动应用程序

我们的团队已经开发并支持企业移动应用程序,用于在大型客户的付款系统框架内接收付款。 现在,它被客户员工在俄罗斯的37个地区中运行Aurora操作系统(以前称为Sailfish Mobile OS RUS)的设备上使用。 在这篇文章中,我将简要讨论这个项目,并更详细地介绍操作系统本身。


背景知识


我们的公司NORBIT为一个大客户开发了一种付款系统。 该系统包括服务器部分和几个客户端:Android操作系统上的桌面,Web和移动应用程序。 最初,该系统在俄罗斯联邦的多个地区实施。 在2016年,客户决定扩大区域影响力,目前该系统已在37个地区实施并成功运行。

2017年,客户决定在家用软件上使用这些设备,并购买了数千台带有Aurora OS(Sailfish Mobile OS RUS)的INOI R7设备。 我们的团队的任务是创建另一个移动支付系统客户。

开发仅花费了几个月。 这是一个有趣的挑战,因为所有工作都必须从头开始。 我们需要组建一个团队,建立开发,测试和定期发布新版本的过程。 我将简要介绍这些阶段。


这个项目怎么样


首先,有必要了解实现这些目标的力量。 我需要一个团队,但在Aurora OS市场上根本没有现成的专家。

在这里,我们必须向平台本身致敬。 Aurora OS下的开发是使用Qt框架进行的。 对于编写简单的应用程序,您可以使用声明性语言QML,在大多数情况下,它不使用C ++中的低级编程。 结果,任务归结为寻找适合Qt的明智开发人员,总体而言,这就足够了。

好的,团队已经组成,我们需要在功能方面赶上其他客户。 截止日期很短-我们只有几个月的时间来更新现有功能并实施新功能。 除了与业务逻辑的斗争之外,与平台本身的斗争也在等待着我们。 有必要解决许多问题,但是我们没有现成的答案。 使用stackoverflow,您将不会很快复制解决方案,因为方向是新的,而且我们是第一个。 这里只是其中一些。

带有KKM的蓝牙连接


该项目需要ATOL和Shtrikh的收银机(KKM)的支持。 两家KKM制造商均生产能够通过蓝牙连接的产品。 在Qt网站上可以找到使用蓝牙的示例。

“条形码”以源代码的形式提供了用于KKM的驱动程序,可以从链接中下载。 还有一个使用驱动程序的项目示例。

可以使用搜索“商业设备驱动程序”的关键字从网站上下载ATOL驱动程序。 在我们的项目中,我们使用了第八版驱动程序。

在项目开始时,KKM既有54-的支持,也有没有。 因此,需要支持四种类型的收银机(ATOL /带54-的条形码/不带54-的条形码)。

处理大型数据库更新


每天早上,客户的员工都会在手机上更新交易对手的参考信息。 由于承包商很多(取决于地区,几千个),因此更新目录最多需要1分钟。 最初,在插入每个交易对手之后进行提交。 在他们插入所有帮助信息后开始提交之后,更新目录的时间减少了一半(一次大提交)。

应用程序构建优化


最初,在项目中犯了“孩子的错误”,包括头文件中的头文件。 向向前声明的过渡极大地减少了项目的构建时间。 此外,构建和安装项目以创建rpm包也需要大量时间。 如果选择安装类型“复制二进制文件”,则将在几秒钟内重新组装,安装和启动调试项目。 此外,为了在模拟器上更快地进行组装,可以禁用用于处理条形码和收银机的类的组装。 非rpm安装选项具有潜在危险,因为依赖项不会启动。

自动化构建应用程序


您可以在不启动开发环境的情况下组织应用程序程序集。 如果您是从开发环境构建的,那么在组装控制台中,您可以看到正在运行的命令。 可以通过bash或批处理来运行相同的命令。

尽管有种种困难,但我们已经完成了客​​户设定的任务。 2017年12月31日,该应用程序成功启动,并接受了第一笔付款。 目前,该应用程序在运行Aurora OS的数千台移动设备上运行。

OS Aurora


现在,让我们更多地讨论操作系统及其功能。


Aurora OS(以前称为Sailfish Mobile OS RUS )是一种受信任的移动设备(智能手机和平板电脑)操作系统。 它由开放移动平台公司开发。 该系统基于Sailfish OS平台 ,专为企业用户和政府公司设计。

2018年,Rostelecom收购了Open Mobile Platform公司75%的股份以及芬兰项目的控股权。 同时,决定用Aurora操作系统替换名称Sailfish Mobile OS Rus。 作者认为,这更适合于国内市场,与产品的目标相对应,并且在俄罗斯和国外引起了积极的联想。

“受信任”一词意味着在Aurora OS上为员工提供设备的组织可以完全控制设备本身及其使用的数据。 数据存储和传输的安全性由符合GOST的加密算法确保,并由FSB和FSTEC的证书确认。

为了管理移动设备,开放移动平台也正在开发SF Cloud产品。 这是一种服务器解决方案,可以部署在客户组织的设备上,使您可以随时监视员工移动设备的状态,在设备上安装,更新和删除应用程序,管理操作系统更新,阻止对设备的访问以及安全地删除数据(擦除)


Aurora OS的完整开发周期在俄罗斯进行。 这使她得以输入俄罗斯计算机程序和数据库的统一注册。 目前,这是唯一具有此状态的移动操作系统,因此与它的兼容性注册表中移动应用程序的先决条件

在后台,Aurora OS具有POSIX兼容环境。 也就是说,它是用于移动设备的成熟Linux。 例如,与Android不同,开箱即用的是systemd,D-Bus,ssh以及PC上“大型”发行版所熟悉的其他服务和实用程序。 同时,该系统包含libhybris组件,该组件旨在在POSIX兼容系统上使用来自Bionic环境的驱动程序。 这使您可以在最初为Android设计的设备上运行 Aurora OS。 包括 Sony Xperia X和Sony Xperia XA2的官方支持

使用Qt框架和基于该框架的其他库提供了几乎所有必需的API,它们也用于实现系统应用程序和服务。 Qt许可证允许您编写开放应用程序和专有程序。 在第二种情况下,必须遵守LGPL规则,但是在商业上使用Qt库时,此要求变为可选。

Sailfish SDK 是公开可用的 ,也是面向Qt的。 它包括以下组件。

Qt Creator是由Qt项目开发的IDE,并提供了深度集成和工具,可方便地使用Qt库。 对Sailfish Mobile OS RUS的支持是通过一个插件实现的,该插件为ARM和x86体系结构以及构建和仿真控件配置了适当的构建套件。


构建环境是Linux环境,具有一组工具和目标 ,打包在VirtualBox的虚拟机中。 无论开发人员的操作系统如何,都可以使用这种格式的发行版使用相同的构建工具-支持Linux,Windows和macOS,但同时也施加了许多限制。 例如,需要将Aurora OS的项目放置在虚拟机可见的某些目录中:用户的主目录或在安装SDK期间指定的备用目录。

Emulator是VirtualBox的虚拟机,其中包括针对x86编译的Sailfish OS映像。 实际上,这是操作系统的完整组装,可让您检查应用程序的许多方面。 但是同时,使用物理设备来验证例如传感器的使用非常方便。

Qt QML Live是一种工具,您可以在更改项目的QML文件时即时更改应用程序的GUI,而无需重建安装包。 这种方法可以显着加速用户界面的开发。

文档是一组参考文章,涵盖了Qt提供的API的描述以及Aurora OS特定的组件:例如,Sailfish Silica文档。 该文档既可以单独阅读,又可以使用上下文帮助格式提供,该格式针对在源代码编辑器中选择的元素进行了调用。

要开始为Aurora OS开发应用程序,您不仅可以学习文档,还可以参加培训课程。 在Stepik平台上有一个公开的入门课程 ,描述了第一步和开发的主要方面。 同样,开放移动平台公司合作伙伴的员工也可以应要求通过edu@omprussia.ru获得更全面的培训课程,包括关于传感器,导航,多媒体等的使用课程。

应用程序开发的结果是rpm安装软件包。 在接触客户公司的设备员工之前,他必须完成以下步骤。

1.使用有效的开发人员证书签名。 实际上,此阶段是安装软件包组合中不可或缺的一部分,因为不仅对rpm文件进行了签名,而且对其组成中包含的文件也进行了签名。 可用性使您可以检查安装软件包的来源以及其结构的完整性。 要签名,您需要获得密钥生成工具和开发者证书,为此,Open Mobile Platform公司的合作伙伴可以将适当的请求发送至dev-support@omprussia.ru

2.将安装包转移到SF Cloud管理员。 根据工作流程的组织,可以以不同的方式来实现此阶段。 因此,必须将软件包下载到SF Cloud存储库,并可以通过控制面板将其分发到设备,这一点很重要。 同时,在下载到存储库时,不仅要验证软件包签名,还要验证rpm文件结构的正确性,这取决于许多要求(由于应用程序组件位置的标准化和安全要求)。 例如:

  • 在用于构建软件包的规范文件中,不应使用%pre,%post,%preun,%postun,%verifyscript等部分;
  • 应用程序包的规范文件中的脚本不应修改或删除现有文件;
  • 应用程序可执行文件的名称和应用程序包名称的开头相同,并且仅包含小写字母,数字和破折号;
  • 可执行文件位于路径/ usr / bin / {项目名称}上;
  • 桌面文件位于路径/usr/share/applications/{project_name►.desktop;
  • 图标位于以下路径中:/ usr / share / icons / hicolor / {resolution} / apps / {project name} .png;
  • 该应用程序使用的其他文件位于/ usr / share / {project name}目录中。


要自动验证此类要求,请使用rpm-validator脚本。 SDK中提供了类似的检查,可以从Build Engine控制中心的IDE中调用该检查。 重要的是要阐明rpm验证程序脚本设置可能由目标平台和客户要求确定。 您可以向dev-support@omprussia.ru提出请求,在“开放移动平台”中获得用于认证Aurora OS构建的rpm-validator。

3.通过管理面板SF Cloud分发到员工的设备。 通常,此阶段包括对一小组设备进行技术和功能测试。 在具有Aurora OS认证版本的设备上安装rpm文件时,还将检查签名和结构。 开发人员可以参与修复在将所有员工下载到设备之前发生的错误。

Aurora OS仍然是唯一满足FSB和FSTEC要求的移动操作系统。

我们准备在评论中讨论Aurora OS上的移动应用程序开发的功能。

本文是在开放移动平台公司的支持下编写的

Source: https://habr.com/ru/post/zh-CN475652/


All Articles