什么是跨平台,说说你对跨平台的理解

可执行文件是不跨平台的,比如 windows 的 exe 在 mac 上是不能执行的,不同的系统就是不同的运行平台。跨平台值得是跨操作系统。

跨平台(Cross-platform)指的是软件或应用程序能够在不同的操作系统或硬件平台上运行,而无需针对每个平台单独开发或进行修改。跨平台的概念可以应用于各种软件、应用程序和开发工具,包括桌面应用、移动应用、Web 应用、游戏等。

对于软件开发者来说,实现跨平台意味着可以编写一份代码,然后将其部署到多个平台上,而不必针对每个平台单独编写和维护代码。这不仅可以节省开发成本和时间,还可以使得软件更加普遍地被用户所接受和使用。

跨平台的实现方式:

  1. 编程语言和框架的选择: 选择支持跨平台的编程语言和框架进行开发,如使用Java、JavaScript、node、React Native等。

    1. jvm : java 提供了 jvm 容器,只要把源码编译成 jvm 能解释的字节码就行了,而且 jdk 提供了统一的 api,jvm 也是通过容器的技术实现了一份代码跑再多个平台。

    2. node 也是跨平台技术

  2. 抽象层和中间件: 使用跨平台的抽象层和中间件来封装底层平台差异,使得开发者可以编写通用的代码。例如,Electron 可以将 Web 技术打包成桌面应用,Xamarin 可以使用 C# 编写跨平台的移动应用。

    1. electron 内置了 chromium 

  3. 虚拟化和容器化技术: 使用虚拟机、容器等技术来在不同平台上运行相同的软件,例如使用 Docker 容器在不同操作系统上运行相同的应用程序。

  4. Web 技术: 将应用程序开发为 Web 应用,通过 Web 浏览器在不同的平台上运行,网页应用是最常见的跨平台开发方式之一。

    1. 浏览器的可执行文件不是跨平台的,但是它作为一个容器可以使网页应用跨平台,这个容器就是各种引擎。

跨平台的优点

  1. 节省开发成本和时间: 使用跨平台方案可以避免针对每个平台单独开发和维护代码,节省了开发成本和时间。

  2. 统一的用户体验: 跨平台方案可以使得软件在不同平台上具有一致的外观和操作方式,提供统一的用户体验。

  3. 更广泛的覆盖范围: 跨平台方案可以使得软件能够运行在更多的平台上,包括桌面、移动、Web 等,为用户提供更广泛的选择。

  4. 更好的可扩展性: 跨平台方案通常会提供更好的可扩展性,使得软件可以更容易地适应新的平台或需求变化。

  5. 降低维护成本: 由于只需要维护一份代码,跨平台方案可以降低维护成本,减少了在不同平台上的更新和修复工作量。

跨平台的缺点

  1. 性能损失: 一些跨平台方案可能会导致性能损失,例如运行在虚拟机或容器中的应用程序可能会比原生应用程序性能更差。因为多了一层容易,所以性能比直接调系统 api 会有所下降

  2. 平台特定功能限制: 由于不同平台具有不同的特性和功能,一些平台特定的功能可能无法在跨平台应用程序中实现。部分 api 很难做到多平台的一致性

  3. 对新技术支持延迟: 由于跨平台方案通常需要等待平台提供商更新其工具或框架,因此可能会延迟对新技术的支持和使用。当容器没有提供的能力需要扩展的时候比较麻烦。比如 js 引擎的 bridge、 jvm 的 jni、node 的 c++ addon 等都是为这个容器扩展能力的方式

  4. 限制设计和用户体验: 为了实现跨平台兼容性,可能需要牺牲一些特定平台的设计和用户体验,导致软件的外观和功能受到限制。

  5. 依赖于第三方工具和框架: 使用跨平台方案通常会依赖于第三方工具和框架,如果这些工具或框架出现问题或停止维护,可能会影响到软件的开发和维护。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值