Multi-OS Application Framework Conflict Prevention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems require significant development effort to enable applications developed for a mobile platform to compile and execute on different platforms, often failing to interoperate with runtime libraries of other platforms, leading to framework conflicts and binary incompatibilities.
Innovation Solution
The implementation of a multi-process model and dynamic library annotation techniques that allow mobile applications to be recompiled for non-mobile platforms with minimal modifications, using a host UI framework to interface with the window server and manage graphical elements, and annotating dynamic libraries to specify multiple target platforms for loading.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If applications are ported between platforms with API differences, then cross-platform compatibility is improved, but development time and complexity increase significantly
Solution Approach 1:
The patent applies preliminary action by performing platform compatibility verification during the build process before deployment. The build system pre-loads dynamic libraries for multiple platforms, determines their compatibility with the target platform, and generates compatibility information in advance. This allows developers to identify and resolve platform compatibility issues early in the development cycle, reducing the time required for cross-platform porting while maintaining adaptability.
2Reliability
If framework compatibility is verified at runtime, then framework conflicts are prevented, but system performance and responsiveness deteriorate
Solution Approach 1:
The patent moves framework compatibility verification from runtime to build time. The build system performs pre-loading of dynamic libraries, determines platform compatibility, and generates compatibility information during the build process. This preliminary action ensures framework compatibility is established before deployment, eliminating the need for runtime verification and maintaining system responsiveness while ensuring reliability.
Solution Approach 2:
The patent introduces a build system as an intermediary that mediates between the application and multiple platform frameworks. The build system determines framework compatibility information and generates platform-specific build outputs, acting as a mediator that resolves potential framework conflicts before the application runs on any specific platform. This intermediary approach ensures reliability without impacting runtime performance.
3Adaptability or versatility
If multiple dynamic libraries are loaded for different platforms, then multi-platform support is improved, but memory consumption and system resources increase
Solution Approach 1:
The patent applies local quality by loading dynamic libraries selectively based on the target platform. The build system determines framework compatibility information for each platform and generates platform-specific build outputs, loading only the necessary libraries for the current platform rather than all possible platforms simultaneously. This approach maintains multi-platform support capability while optimizing memory consumption by loading only locally required libraries.
Data Source
AI summary
Embodiments described herein provide for system and methods to enable an operating environment that supports multi-OS applications. One embodiment provides for a non-transitory machine-readable medium storing instructions that cause a data processing system to perform operations to detect conflicts during a build process for a dynamic library. The operations include loading program code for the dynamic library to build for a first platform, parsing the set of interfaces and data structures exported by the dynamic library to verify consistency of a build contract for the dynamic library, and generating a build error during a build process for the dynamic library upon detecting an inconsistent build contract specifying at least an application binary interface (ABI) and an API for the dynamic library.


