iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >如何为Linux ARM设备构建跨平台UI
  • 795
分享到

如何为Linux ARM设备构建跨平台UI

2023-06-15 15:06:45 795人浏览 独家记忆
摘要

这篇文章给大家分享的是有关如何为linux ARM设备构建跨平台UI的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。AndroidXML 和 TotalCross 的运用为树莓派和其他设备创建 UI 提供了更简单的

这篇文章给大家分享的是有关如何为linux ARM设备构建跨平台UI的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

AndroidXML 和 TotalCross 的运用为树莓派和其他设备创建 UI 提供了更简单的方法。

为应用程序创建良好的用户体验(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 设备上运行。

如何为Linux ARM设备构建跨平台UI

Home appliance application to control thermostat

我们想为树莓派开发我们的应用程序,所以我们使用 Android 的 ConstraintLayout 来构建 848x480(树莓派的分辨率)的固定屏幕大小的 UI,不过你可以用其他布局构建响应性 UI。

Android XML 为 UI 创建增加了很多灵活性,使得为应用程序构建丰富的用户体验变得容易。在下面的 XML 中,我们使用了两个主要组件:ImageView 和 TextView。

<ImageViewandroid:id="@+id/imageView6"android:layout_width="273Dp"android:layout_height="291dp"android:background="@drawable/Casa"tools:layout_editor_absoluteX="109dp"tools:layout_editor_absoluteY="95dp" /><TextViewandroid:id="@+id/insideTempEdit"android:layout_width="94dp"android:layout_height="92dp"android:background="#F5F5F5"android:text="20"android:textAlignment="center"android:gravity="center"android:textColor="#000000"android:textSize="67dp"android:textStyle="bold"tools:layout_editor_absoluteX="196dp"tools:layout_editor_absoluteY="246dp" />

TextView 元素用于向用户显示一些数据,比如建筑物内的温度。大多数 ImageView 都用作用户与 UI 交互的按钮,但它们也需要实现屏幕上组件提供的事件。

用 TotalCross 整合

这个 PoC 中的第二项技术是 TotalCross。我们不想在设备上使用 Android 的任何东西,因为:

1。我们的目标是为 Linux ARM 提供一个出色的 UI。 2。我们希望在设备上实现低占用。 3。我们希望应用程序在低计算能力的低端硬件设备上运行(例如,没有 GPU、 低 RAM 等)。

首先,我们使用 VSCode 插件 创建了一个空的 TotalCross 项目。接下来,我们保存了 drawable 文件夹中的图像副本和 xml 文件夹中的 Android XML 文件副本,这两个文件夹都位于 resources 文件夹中:

如何为Linux ARM设备构建跨平台UI

Home Appliance file structure

为了使用 TotalCross 模拟器运行 XML 文件,我们添加了一个名为 KnowCode 的新 TotalCross API 和一个主窗口来加载 XML。下面的代码使用 API 加载和呈现 XML:

public void initUI() {    XmlScreenAbstractLayout xmlCont = XmlScreenFactory.create("xml / homeApplianceXML.xml");    swap(xmlCont);}

就这样!只需两个命令,我们就可以使用 TotalCross 运行 Android XML 文件。以下是 XML 如何在 TotalCross 的模拟器上执行:

如何为Linux ARM设备构建跨平台UI

TotalCross simulator running temperature application

完成这个 PoC 还有两件事要做:添加一些事件来提供用户交互,并在树莓派上运行它。

添加事件

KnowCode API 提供了一种通过 ID(getControlByID) 获取 XML 元素并更改其行为的方法,如添加事件、更改可见性等。

例如,为了使用户能够改变家中或其他建筑物的温度,我们在 UI 底部放置了加号和减号按钮,并在每次单击按钮时都会出现“单击”事件,使温度升高或降低一度:

Button plus = (Button) xmlCont.getControlByID("@+id/plus");Label insideTempLabel = (Label) xmlCont.getControlByID("@+id/insideTempLabel");plus.addPressListener(new PressListener() {    @Override    public void controlPressed(ControlEvent e) {        try {            String tempString = insideTempLabel.getText();            int temp;            temp = Convert.toInt(tempString);            insideTempLabel.setText(Convert.toString(++temp));        } catch (InvalidNumberException e1) {            e1.printStackTrace();        }    }});

在树莓派 4 上测试

最后一步!我们在一台设备上运行了应用程序并检查了结果。我们只需要打包应用程序并在目标设备上部署和运行它。VNC 也可用于检查设备上的应用程序。

整个应用程序,包括资源(图像等)、Android XML、TotalCross 和 Knowcode API,在 Linux ARM 上大约是 8MB。

下面是应用程序的演示:

如何为Linux ARM设备构建跨平台UI

感谢各位的阅读!关于“如何为Linux ARM设备构建跨平台UI”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 如何为Linux ARM设备构建跨平台UI

本文链接: https://www.lsjlt.com/news/280691.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何为Linux ARM设备构建跨平台UI
    这篇文章给大家分享的是有关如何为Linux ARM设备构建跨平台UI的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。AndroidXML 和 TotalCross 的运用为树莓派和其他设备创建 UI 提供了更简单的...
    99+
    2023-06-15
  • PHP 跨平台代码如何实现跨设备兼容
    php 跨平台兼容性:跨平台开发实现:php 允许创建可在多个平台上运行的应用程序。实现方法: a. 响应式 web 设计:创建自动调整布局的网站。 b. 渐进式 web 应用程序:构建...
    99+
    2024-05-06
    php 跨平台 css
  • Flutter的Platform介绍-跨平台开发,如何根据不同平台创建不同UI和行为
    文章目录 Flutter跨平台概念介绍跨平台开发平台相关性Platform ChannelPlatform-specific UIPlatform Widgets 如何判断当前是什么平台...
    99+
    2023-10-11
    flutter 跨平台 platform类 技巧 Android IOS
  • 如何构建LAMP平台
    小编给大家分享一下如何构建LAMP平台,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  一、搭建httpd。1编辑IP...
    99+
    2024-04-02
  • 如何构建MySQL监控平台
    这篇文章将为大家详细讲解有关如何构建MySQL监控平台,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。prometheus+grafana 对于现在这个时间点来说,相信很多...
    99+
    2024-04-02
  • C++跨平台开发:如何建立跨平台应用程序的CI/CD管道?
    建立跨平台 c++++ 应用程序的 ci/cd 管道包括以下步骤:使用跨平台构建工具(如 cmake)创建自动化构建流程。为不同平台配置平台特定的构建环境,以支持跨平台编译。在所有支持的...
    99+
    2024-05-10
    ci/cd 跨平台 linux git c++ macos 跨平台应用
  • 如何构建LAMP平台:Apache,MySQL,PHP
    如何构建LAMP平台:Apache,MySQL,PHP 一、Apache网站服务:1. Apache的起源(多系统兼容):2.重要特点:3.软件版本:4.编译安装呢http服务器: 二、L...
    99+
    2023-09-18
    apache php mysql 数据库 云计算
  • VS Code和PlantUML如何实现跨平台设计
    这篇文章主要为大家展示了“VS Code和PlantUML如何实现跨平台设计”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VS Code和PlantUML如何实...
    99+
    2024-04-02
  • C++开发建议:如何进行C++代码的跨平台设计
    C++开发建议:如何进行C++代码的跨平台设计随着移动设备和操作系统的不断涌现,跨平台开发已经成为当今软件开发领域的一个重要话题。特别是在C++开发领域,跨平台设计更是一个挑战和机遇并存的问题。本文旨在探讨C++开发中的跨平台设计,分析其重...
    99+
    2023-11-22
    代码设计 跨平台编程 C++开发建议
  • 详解如何使用VSCode和CMake构建跨平台的C/C++开发环境
    目录一、前言二、开发工具三、示例项目四、使用CMake4.1、如何引入一个第三方静态库4.2、动态库的加载问题4.3、utf-8编码格式的代码通过visualstudio编译报错问题...
    99+
    2024-04-02
  • C++跨平台开发:如何进行代码移植和重构?
    跨平台 c++++ 开发需要代码移植和重构。移植涉及替换特定平台依赖项,而重构包括抽象平台特定代码、使用跨平台库和遵守跨平台编码约定。实战案例演示了如何使用抽象和跨平台库创建可移植图像查...
    99+
    2024-05-11
    c++ 重构 跨平台 代码移植 linux macos
  • C++跨平台开发:为什么以及如何使用它?
    为什么使用 c++++ 跨平台开发?可移植性:在多种操作系统和硬件架构上运行应用程序。代码重用:在不同平台上轻松重用代码。性能:支持开发对性能要求高的应用程序。社区支持:拥有庞大且活跃的...
    99+
    2024-05-10
    linux c++ macos
  • 如何进行Ubuntu on Windows10跨平台开发环境搭建
    本篇文章给大家分享的是有关如何进行Ubuntu on Windows10跨平台开发环境搭建,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。程序猿经常争论的一个话题是:日常开发到底...
    99+
    2023-06-19
  • 如何使用 ASP 和 JavaScript 创建跨平台应用程序?
    ASP和JavaScript是两种非常流行的Web开发技术,常用于创建各种类型的应用程序。这两种技术都可以用于创建跨平台应用程序。在本文中,我们将讨论如何使用ASP和JavaScript创建跨平台应用程序。 ASP是一种服务器端脚本语言,用...
    99+
    2023-06-21
    npm javascript linux
  • 鹅厂如何构建大型基础网络平台
    本文转载自微信公众号“ 鹅厂网事”(ID:tencent_network),作者:黄翔。      鹅厂是一个业务类型非常丰富的互联网公司,涵盖了大型社交流量平台(微信/QQ)、在线游戏、公...
    99+
    2023-06-04
  • 如何使用备份集跨平台传输整个CDB数据库
    本篇内容主要讲解“如何使用备份集跨平台传输整个CDB数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用备份集跨平台传输整...
    99+
    2024-04-02
  • 如何使用C++创建跨平台的移动应用程序?
    使用 c++++ 跨平台创建移动应用程序可通过以下步骤实现:安装 qt 框架和 c++ 编译器。创建 qt 项目并声明主窗口类。定义窗口的内容,包括界面元素和布局。编译和运行应用程序。 ...
    99+
    2024-05-10
    c++ 跨平台 移动应用程序
  • 如何进行大数据平台架构的设计
    本篇文章为大家展示了如何进行大数据平台架构的设计,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  关于大数据平台架构的设计探究。麦肯锡全球研究所给出的定义是:一种规模大到在获取、存储、管理、分析方面...
    99+
    2023-06-02
  • Linux系统下如何安装跨平台团队开发工具Vagrant
    本篇内容介绍了“Linux系统下如何安装跨平台团队开发工具Vagrant”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Vagrant 是一个...
    99+
    2023-06-12
  • 如何使用Cmake来搭建跨平台的应用程序框架
    这篇文章主要介绍“如何使用Cmake来搭建跨平台的应用程序框架”,在日常操作中,相信很多人在如何使用Cmake来搭建跨平台的应用程序框架问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Cmake来搭建跨...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作