关闭
搜索
搜索
本版
帖子
用户
热搜:
程序员
简洁模式
高级模式
用户组: 游客
消息
提醒
新听众
我关注的
帖子
道具
勋章
任务
设置
退出
请
登录
后使用快捷导航
没有帐号?
立即注册
设为首页
收藏本站
开启辅助访问
切换到窄版
登录
or
立即注册
快捷导航
搜索
首页
论坛
BBS
MCU单片机技术
程序员交流
一种为LinuxARM设备构建跨平台UI的新方法|Linux中国
[复制链接]
作者:
Ds—shiqi
版块:
›
嵌入式操作系统
›
linux
发布时间:
2021-2-19 23:49:38
1129
0
返回列表
Ds—shiqi
当前离线
注册会员
注册会员, 积分 153, 距离下一级还需 47 积分
注册会员
注册会员, 积分 153, 距离下一级还需 47 积分
积分
153
发消息
楼主
电梯直达
Ds—shiqi
发表于 2021-2-19 23:49:38
|
只看该作者
|
倒序浏览
|
阅读模式
导读:
AndroidXML 和 TotalCross 的运用为树莓派和其他设备创建 UI 提供了更简单的方法。
本文字数:3875,阅读时长大约:5分钟
作者:Bruno Muniz
译者:Chao-zhi Liu
为应用程序创建良好的用户体验(UX)是一项艰巨的任务,尤其是在开发嵌入式应用程序时。今天,有两种图形用户界面(GUI)工具通常用于开发嵌入式软件:它们要么涉及复杂的技术,要么非常昂贵。
然而,我们已经创建了一个概念验证(PoC),它提供了一种新的方法来使用现有的、成熟的工具为运行在桌面、移动、嵌入式设备和低功耗 ARM 设备上的应用程序构建用户界面(UI)。我们的方法是使用 Android Studio 绘制 UI;使用TotalCross在设备上呈现 Android XML;采用被称为KnowCode的新TotalCross API;以及使用树莓派 4来执行应用程序。
选择 Android Studio
可以使用 TotalCross API 为应用程序构建一个美观的响应式用户体验,但是在 Android Studio 中创建 UI 缩短了制作原型和实际应用程序之间的时间。
有很多工具可以用来为应用程序构建 UI,但是Android Studio是全世界开发者最常使用的工具。除了它被大量采用以外,这个工具的使用也非常直观,而且它对于创建简单和复杂的应用程序都非常强大。在我看来,唯一的缺点是使用该工具所需的计算机性能,它比其他集成开发环境 (IDE) 如 VSCode 或其开源替代方案VSCodium要庞大得多。
通过思考这些问题,我们创建了一个概念验证,使用 Android Studio 绘制 UI,并使用 TotalCross 直接在设备上运行 AndroidXML。
构建 UI
对于我们的 PoC,我们想创建一个家用电器应用程序来控制温度和其他东西,并在 Linux ARM 设备上运行。
Home appliance application to control thermostat
我们想为树莓派开发我们的应用程序,所以我们使用 Android 的ConstraintLayout来构建 848x480(树莓派的分辨率)的固定屏幕大小的 UI,不过你可以用其他布局构建响应性 UI。
Android XML 为 UI 创建增加了很多灵活性,使得为应用程序构建丰富的用户体验变得容易。在下面的 XML 中,我们使用了两个主要组件:ImageView和TextView。
TextView 元素用于向用户显示一些数据,比如建筑物内的温度。大多数 ImageView 都用作用户与 UI 交互的按钮,但它们也需要实现屏幕上组件提供的事件。
用 TotalCross 整合
这个 PoC 中的第二项技术是 TotalCross。我们不想在设备上使用 Android 的任何东西,因为:
1。我们的目标是为 Linux ARM 提供一个出色的 UI。2。我们希望在设备上实现低占用。3。我们希望应用程序在低计算能力的低端硬件设备上运行(例如,没有 GPU、 低 RAM 等)。
首先,我们使用VSCode 插件创建了一个空的 TotalCross 项目。接下来,我们保存了 文件夹中的图像副本和 文件夹中的 Android XML 文件副本,这两个文件夹都位于 文件夹中:
Home Appliance file structure
为了使用 TotalCross 模拟器运行 XML 文件,我们添加了一个名为 KnowCode 的新 TotalCross API 和一个主窗口来加载 XML。下面的代码使用 API 加载和呈现 XML:
就这样!只需两个命令,我们就可以使用 TotalCross 运行 Android XML 文件。以下是 XML 如何在 TotalCross 的模拟器上执行:
TotalCross simulator running temperature application
完成这个 PoC 还有两件事要做:添加一些事件来提供用户交互,并在树莓派上运行它。
添加事件
KnowCode API 提供了一种通过 ID 获取 XML 元素并更改其行为的方法,如添加事件、更改可见性等。
例如,为了使用户能够改变家中或其他建筑物的温度,我们在 UI 底部放置了加号和减号按钮,并在每次单击按钮时都会出现“单击”事件,使温度升高或降低一度:
在树莓派 4 上测试
最后一步!我们在一台设备上运行了应用程序并检查了结果。我们只需要打包应用程序并在目标设备上部署和运行它。VNC也可用于检查设备上的应用程序。
整个应用程序,包括资源(图像等)、Android XML、TotalCross 和 Knowcode API,在 Linux ARM 上大约是 8MB。
下面是应用程序的演示:
Application demo
在本例中,该应用程序仅为 Linux ARM 打包,但同一应用程序可以作为 Linux 桌面应用程序运行,在Android 设备 、Windows、windows CE 甚至 iOS 上运行。
所有示例源代码和项目都可以在HomeApplianceXML GitHub存储库中找到。
现有工具的新玩法
为嵌入式应用程序创建 GUI 并不需要像现在这样困难。这种概念证明为如何轻松地完成这项任务提供了新的视角,不仅适用于嵌入式系统,而且适用于所有主要的操作系统,所有这些系统都使用相同的代码库。
我们的目标不是为设计人员或开发人员创建一个新的工具来构建 UI 应用程序;我们的目标是为使用现有的最佳工具提供新的玩法。
你对这种新的应用程序开发方式有何看法?在下面的评论中分享你的想法。
via:http://opensource.com/article/20/5/linux-arm-ui
作者:Bruno Muniz选题:lujun9972译者:Chao-zhi校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出
欢迎遵照 CC-BY-NC-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有帐号?
立即注册
收藏
0
相关帖子
•
产业缺货背景下,STM32峰会都说了什么?
•
Xmanager使用教程:如何在Linux系统上安装Xterm应用
•
开源项目EasyDarwin编译:Linux系统下编译运行最新EasyDarwin的步骤介绍
•
一个惊人快速的终端录像工具,也能录制VSCode和Chrome窗口
•
硬核观察|Python之父对Rust、Go、Julia和TypeScript的看法
•
干货|手把手带你搞定4大容器网络问题
•
超详细的PyCharm教程,必须收藏!
•
Linux用户宝典:值得一用的5款远程桌面应用程序
•
对话胡伟武:和国产CPU一起突围的20年
•
《Linux内核编码风格》官方手册最新中译本
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
表情
@朋友
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表