我们的团队已经开发并支持企业移动应用程序,用于在大型客户的付款系统框架内接收付款。 现在,它被客户员工在俄罗斯的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上的移动应用程序开发的功能。
本文是在开放移动平台公司的支持下编写的