跨平台开发技术

news2024/11/15 13:59:04

目录

    • 1.Qt
      • 1.简介
      • 2.优势
      • 3.劣势
    • 2.NET Core+Vue
      • 1.简介
      • 2.优点
    • 3.Flutter
      • 1.简介
      • 2.优点
      • 3.缺点
    • 4.Maui
      • 1.简介
      • 2.优点
      • 3.缺点
    • 5.Avalonia
      • 1.简介
      • 2.优点
      • 3.缺点
    • 6. Cordova
      • 1.简介
      • 2.优点
      • 3.缺点
    • 7.Electron
      • 1.简介
      • 2.优点
      • 3.缺点

在这里插入图片描述

个人搜集资料并总结了一些跨平台开发技术,如有不足欢迎指正。

1.Qt

1.简介

QT是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形所需的所有功能。它是完全面向对象的,容易扩展,并且允许真正的组件编程。

2.优势

  1. 使用Qt开发的程序可以运行在Windows、Linux、MAC、Android、IOS平台上,一套代码即可实现在多个系统平台上运行程序。
  2. Qt支持图像渲染和OpenGL,可以支持软件渲染,也可以支持GPU硬件加速渲染。
  3. QML提供更简单的基于3D渲染引擎高效的写跨平台GUI的方式。也就是说,HTML5支持的各种特性QT几乎全都支持了,如下图:
    在这里插入图片描述
  4. QT提供了一系列丰富的功能库,涵盖了图形界面、网络通信、数据库、多媒体、XML处理等多个领域。
  5. Qt一共提供了两个版本,一个是用于商业化的商业版本,另外一个是为广大学习者和程序员提供的开源版本。这两个版本的功能差异很小,开发人员在遵循GPL协议的前提下完全可以使用开源版本来开发项目。

3.劣势

  1. Qt对Windows、Linux、Mac平台支持很好,但是对于Android、iOS、UWP等平台的支持目前还不是很完美。因为使用Qt来进行手机应用开发,制作出来的成品无论是界面、系统资源调用还是稳定性,肯定不如使用原生开发环境开发的要好。因此实际上还是很少人选择使用QT去开发Android和IOS应用。
  2. Qt的商业版权问题。如果公司用 Qt 开发闭源商业桌面软件,在 Windows/Mac/Linux上,可以使用动态库链接方式,遵循 LGPL 协议,是不用付费的,也不用开源你的代码。只需在你的商业软件的 about 等一些小角落,说明你使用了 Qt,遵循 LGPLV3 协议即可,你公司就可以开发闭源的商业软件。但是,如果使用静态库链接的方式开发 Windows/Mac/Linux上的闭源商业桌面软件,就要付费使用了,付费价格是 一年 3950 美元,三年 8400 美元。

2.NET Core+Vue

1.简介

.NET Core是一个通用的跨平台软件开发框架,它允许开发人员构建各种软件,包括Web,桌面,移动,云,游戏,物联网等。主要特性包括开源、跨平台、现代、灵活、轻量级、快速、友好、可共享。

Vue.js 是一个用于构建用户界面的 JavaScript 框架。

2.优点

1.ASP.NET Core可以灵活搭配各种前端框架,比如可以搭配Vue来实现前后端分离,可以搭配使用k8s,docker容器这些更令人着迷的新技术。
2. 使用.NETCore开发基于Web技术的应用程序,可以在WIndows、Linux、Macos、Android上以网页的方式运行。

3.Flutter

1.简介

Flutter是一种用于构建用户界面的工具包,可以创建高度定制化的、响应式的移动应用。它包括了丰富的UI组件库、强大的渲染引擎和一套先进的开发工具,使开发者能够快速构建现代化的移动应用。

2.优点

1.性能强大、流畅。
2. 支持插件,支持原生系统调用。
3. 开发者可以使用Dart语言只编写一次代码,然后将其编译到多个平台上,包括Windows桌面、Linux桌面、Android和iOS。

3.缺点

1.脱离不开原生,开发人员需要具备原生(Android、iOS)基础开发能力。
2. 原生集成第三方SDK后,兼容性适配很头疼。
3. 非真正跨平台,Flutter对Android和IOS开发友好,对WIndows开发不友好。Windows平台上的Flutter应用实际上只是Win32应用。如果想编写特定于平台的代码,就必须使用C++编写代码。然而,使用C++的NuGet包数量非常少。如果你想使用特定于平台的功能,就需要花费大量时间在Windows上用C++重新实现这些功能。参考链接:Windows版Flutter应用开发体验远达不到Android和iOS的水平

4.Maui

1.简介

MAUI是微软最近2年新推出的一种跨平台应用程序的开源开发框架。

2.优点

  1. MAUI构建在.NET生态系统的基础上,可以利用.NET的丰富工具和库来加速开发过程。
  2. 开发人员可以编写一次UI代码,并在不同平台上复用,加快了开发速度并降低了代码复杂性。

3.缺点

  1. 用vs搞MAUI工程,经常出现编译报错、清理工程后再次编译才成功的现象。另外,编译速度也很慢。
  2. 使用Maui编写的代码可以再WIndows、Macos、Linux、IOS上运行,但无法在Linux上运行,无法做到真正跨平台。
  3. 文档不完整,平台刚出来,文档还不够完整,特别是中文资料。
  4. 社区支持不足:MAUI是一个相对较新的框架,开源的解决方案、案例比较少。

5.Avalonia

1.简介

Avalonia是.NET的一个跨平台UI框架,提供了一个灵活的样式系统,支持广泛的操作系统,如Windows、Linux、macOS、Android、iOS。

2.优点

  1. Avalonia的语法是比较适合WPF开发者的,前台是xaml界面,后台是C#代码,熟悉WPF的开发人员可以很快上手Avalonia开发。
  2. 跨平台效果比较好。

3.缺点

  1. dll比较多,资源占用比较大,简简单单的应用就要占用100多M的内存。
  2. 商用要收费。
  3. 国内使用人数较少,中文资料较少。

6. Cordova

1.简介

Cordova 是一个基于 Apache 的开源框架,可以使用 HTML、CSS 和 JavaScript 创建移动应用程序,支持多个平台,包括 Android、iOS、Windows 和其他移动操作系统。

2.优点

  1. 使用前端技术(例如 HTML、CSS 和 JavaScript)进行开发,易于学习。
  2. 可以在多个平台上构建应用程序,并且可以通过插件扩展功能。

3.缺点

  1. 应用程序性能可能不如其他跨平台框架。
  2. 用户界面无法与原生应用程序媲美。

7.Electron

1.简介

Electron 是一个用于构建跨平台桌面应用程序的开源框架,允许开发者使用 JavaScript、HTML 和 CSS来构建应用程序,支持 Windows、MacOS 和 Linux。

2.优点

  1. 具有强大的支持和社区。
  2. 可以使用前端技术进行开发,易于学习。
  3. 可以构建跨平台桌面应用程序。

3.缺点

  1. 应用程序大小可能较大。
  2. 性能可能不如原生桌面应用程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1133545.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实战!RPA厂商选型分享

企业发展,必先科技先行,通过科技来提升内部运营、业务效率,从而达到降本、提质、增效的目标。但无论在技术选型亦或者厂商选择,都需要漫长的对比和调研,方能选择适合自身企业发展解决问题的技术和长期合作的技术伙伴。…

MathType7 公式编辑器嵌入Word\WPS,MathType 公式编辑常用小技巧

目录 1 MathType-7 下载 2 安装 4 嵌入word 5 嵌入wps 6 Mathtype 常用小技巧 6.1 四种插入公式的区别 : 6.2 MathType 常用快捷键 6.3 MathType转换公式 6.4 MathType公式编号 6.5 改变公式编号 6.6 mathtype 公式格式转换为latex格式 背景: w…

如何保卫您的网站:解决DDoS攻击与CC攻击

在当今数字化时代,网站安全是至关重要的。网络攻击如DDoS(分布式拒绝服务)和CC(恶意请求洪水)攻击可能会导致网站不稳定甚至不可用。本文将详细分析DDoS攻击和CC攻击的差异,以及如何使用CDN(内容…

【C++】priority_queue仿函数

今天我们来学习C中另一个容器适配器:优先级队列——priority_queue;和C一个重要组件仿函数: 目录 一、priority_queue 1.1 priority_queue是什么 1.2 priority_queue的接口 1.2.1 priority_queue使用举例 二、仿函数 三、关于priority…

Linux C语言开发-D7D8运算符

算术运算符&#xff1a;-*/%&#xff0c;浮点数可以参与除法运算&#xff0c;但不能参与取余运算 a%b&#xff1a;表示取模或取余 关系运算符&#xff1a;<,>,>,<,,! 逻辑运算符:!,&&,|| &&,||逻辑运算符是从左到右&#xff0c;依次运算&#…

freeRTOS内部机制——栈的作用

上图中*pa 和*pb分别为R0&#xff0c;R1&#xff0c;调用C函数时&#xff0c;第一个参数保存在R0中第二个参数保存在R1中。这是约定。 指令保存在哪里&#xff1f; 指令保存在flash上面 LR等于什么? LR是返回地址&#xff0c;函数执行完了过后LR等于下一条指令的地址 运行…

JDK8新特性:Stream流

目录 1.获取Stream流 2.Stream流常见的中间方法 3.Stream流常见的终结方法 1、 Stream 是什么&#xff1f;有什么作用&#xff1f;结合了什么技术&#xff1f; ●也叫 Stream 流&#xff0c;是Jdk8开始新增的一套 API ( java . util . stream .*)&#xff0c;可以用于操作集…

【JAVA学习笔记】38 - 单例设计模式-静态方法和属性的经典使用

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter10/src/com/yinhai/final_ 一、什么是设计模式 1.静态方法和属性的经典使用 2.设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格以及解决问题的思考方式。设计模式就像是…

【完美世界】被骂国漫之耻,石昊人设战力全崩,现在真成恋爱世界了

【侵权联系删除】【文/郑尔巴金】 深度爆料&#xff0c;《完美世界》动漫第135集预告片已经更新了&#xff0c;但是网友们对此却是一脸槽点。从预告中可以看出&#xff0c;石昊在和战王战天歌的大战中被打成重伤&#xff0c;最后云曦也被战天歌抓住。在云曦面临生死危机的时候…

AIGC底层数据探索——高质量数据助力大模型迭代升级

// 编者按&#xff1a;近年来&#xff0c;大模型的概念逐渐受到更广泛的关注&#xff0c;而谈及大模型就离不开对底层数据的探索。 大模型训练数据痛点与中文数据集现状&#xff1b;高质量数据定义&#xff1b;对话式数据模型实验&#xff1b;晴数智慧高质量数据解决方案。 文…

信号补零对信号频谱的影响

文章目录 前言一、 什么是补零二、案例三、补零前仿真及分析1、补零前 MATLAB 源码2、仿真及结果分析①、 x n x_n xn​ 时域图②、 x n x_n xn​ 频谱图 四、补零后仿真及分析1、补6000个零且1000采样点①、 MATLAB 源码②、仿真及结果分析 2、波形分辨率3、补6000个零且7000采…

电子巡更和智能巡检关系

电子巡更和智能巡检是两种重要的安全巡查技术&#xff0c;它们之间相似相通。 电子巡更是一种基于传统巡更系统发展而来的技术&#xff0c;主要通过数字化手段对巡查工作进行记录和监督。它通常由巡更棒、信息钮和电子巡更软件组成。巡查人员在进行巡查时&#xff0c;需要携带…

Kafka集群搭建与SpringBoot项目集成

本篇文章的目的是帮助Kafka初学者快速搭建一个Kafka集群&#xff0c;以及怎么在SpringBoot项目中使用Kafka。 kafka集群环境包地址&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;x9yn 一、Kafka集群搭建 1、准备环境 &#xff08;1&#xff09;准备三台…

泵站机电设备健康状态系统建立的关键

在现代工业运营中&#xff0c;泵站机电设备的健康管理至关重要。通过建立一套完善的泵站机电设备健康管理系统&#xff0c;可以有效地监测、诊断和维护设备&#xff0c;确保其正常运行和延长使用寿命。本文将从三个方面展开讨论&#xff0c;分别是泵站机电设备养护在设备健康管…

题目 1053: 二级C语言-平均值计算(python详解)——练气三层初期

✨博主&#xff1a;命运之光 &#x1f984;专栏&#xff1a;算法修炼之练气篇&#xff08;C\C版&#xff09; &#x1f353;专栏&#xff1a;算法修炼之筑基篇&#xff08;C\C版&#xff09; &#x1f352;专栏&#xff1a;算法修炼之练气篇&#xff08;Python版&#xff09; ✨…

不懂项目管理三角,你的项目很难成功

在管理项目时&#xff0c;难免会出现影响项目的变更或其他问题。为了防止项目超出计划或超支&#xff0c;项目经理总是要平衡项目管理三角形&#xff08;由三个主要项目约束组成&#xff09;。 什么是项目管理三角形&#xff1f; 项目管理三角形由决定项目质量的三个约束组成…

LAMP项目部署实战

一、LAMP环境部署 1、回顾LAMP LAMP Linux Apache MySQL PHP Apache&#xff1a;主要用于接收用户的请求&#xff0c;处理业务逻辑&#xff0c;返回结果给客户端&#xff08;浏览器&#xff09; PHP&#xff1a;编程语言的一种&#xff0c;主要应用于Web开发。主要实现注…

python输出与数据类型

目标 1、使用print输出内容 2、熟悉字符串类型 3、熟悉数字类型 4、熟悉数字与字符串操作 输出 print可控制输出内容也可配合、-、*、/进行运算&#xff0c;和整数型配合可进行运算和字符型配合有不同效果&#xff0c;如为拼接&#xff0c;*为多次输出注&#xff1a;整数型如&…

【ROS入门】机器人系统仿真——URDF集成Gazebo

文章结构 URDF与Gazebo基本集成流程创建功能包编写URDF或Xacro文件启动 Gazebo 并显示机器人模型 URDF集成Gazebo相关设置collisioninertial颜色设置 URDF集成Gazebo实操编写封装惯性矩阵算法的 xacro 文件复制相关 xacro 文件&#xff0c;并设置 collision inertial 以及 colo…

嵌入式中的MCU、ARM、DSP、FPGA

目录 “角色扮演” MCU ARM 特点 DSP 特点 FPGA 特点 应用 “角色扮演” MCU&#xff08;Microcontroller Unit&#xff09;、ARM&#xff08;Advanced RISC Machine&#xff09;、DSP&#xff08;Digital Signal Processor&#xff09;和FPGA&#xff08;Field-Progr…