Lably
Skip to content

Cross-platform software

Computer software installed on multiple computing platforms

  • 18 min read
  • 4 chapters

Related on Lably

Through Computing, Software and Interpreter (computing)

For example, a cross-platform application may run on Linux, macOS and Microsoft Windows. Cross-platform software may run on many platforms, or as few as two. Some frameworks for cross-platform development are Codename One, ArkUI-X, Kivy, Qt, GTK, Flutter, NativeScript, Xamarin, Apache Cordova, Ionic, and React Native.

Platforms

Platform can refer to the type of processor (CPU) or other hardware on which an operating system (OS) or application runs, the type of OS, or a combination of the two. An example of a common platform is Android which runs on the ARM architecture family. Other well-known platforms are Linux/Unix, macOS and Windows, these are all cross-platform. Applications can be written to depend on the features of a particular platform—either the hardware, OS, or virtual machine (VM) it runs on. For example, the Java platform is a common VM platform which runs on many OSs and hardware types.

Hardware

A hardware platform can refer to an instruction set architecture. For example: ARM or the x86 architecture. These machines can run different operating systems.

Smartphones and tablets generally run ARM architecture, these often run Android or iOS and other mobile operating systems.

Software

A software platform can be either an operating system (OS) or programming environment, though more commonly it is a combination of both. An exception is Java, which uses an OS-independent virtual machine (VM) to execute Java bytecode. Some software platforms are:

  • Android (ARM64)
  • ChromeOS (ARM32, ARM64, IA-32, x86-64)
  • Common Language Infrastructure (CLI) by Microsoft, implemented in:
    • The legacy .NET Framework that works only on Microsoft Windows.
    • The newer .NET framework (simply called ".NET") that works across Microsoft Windows, macOS, and Linux.
    • Other implementations such as Mono (formerly by Novell and Xamarin)
  • OpenHarmony/Oniro (ARM64, RISC-V, x86, x64, and LoongArch)
  • HarmonyOS (ARM64)
  • iOS ((ARMv8-A))
  • iPadOS (ARMv8-A)
  • Java
  • Linux ( Alpha, ARC, ARM, C-Sky, Hexagon, LoongArch, m68k, Microblaze, MIPS, Nios II, OpenRISC, PA-RISC, PowerPC, RISC-V, s390, SuperH, SPARC, x86, Xtensa)
  • Microsoft C to P-Code (1980-1982: many architectures and systems)
  • macOS x86, ARM (Apple silicon)
  • Windows (IA-32, x86-64, ARM, ARM64)
  • PlayStation 4 (x86), PlayStation 3 (PowerPC) and PlayStation Vita (ARM)
  • Solaris (SPARC, x86)
  • SPARC
  • Unix (many platforms since 1969)
  • Web browsers – mostly compatible with each other, running JavaScript web-apps
  • Xbox
Minor, historical

Java

The Java language is typically compiled to run on a VM that is part of the Java platform. The Java virtual machine (Java VM, JVM) is a CPU implemented in software, which runs all Java code. This enables the same code to run on all systems that implement a JVM. Java software can be executed by a hardware-based Java processor. This is used mostly in embedded systems.

Java code running in the JVM has access to OS-related services, like disk input/output (I/O) and network access, if the appropriate privileges are granted. The JVM makes the system calls on behalf of the Java application. This lets users to decide the appropriate protection level, depending on an access-control list (ACL). For example, disk and network access is usually enabled for desktop applications, but not for browser-based applets. The Java Native Interface (JNI) can also be used to access OS-specific functions, with a loss of portability.

Currently, Java Standard Edition software can run on Microsoft Windows, macOS, several Unix-like OSs, and several real-time operating systems for embedded devices. For mobile applications, browser plugins are used for Windows and Mac based devices, and Android has built-in support for Java. There are also subsets of Java, such as Java Card or Java Platform, Micro Edition, designed for resource-constrained devices.

Sign in to keep reading

3 more chapters are free with a Lably account.

More in Computing and communication