Native Library Versioning for Mobile Runtime Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for loading libraries in mobile applications lack the ability to easily browse and execute JavaScript applications on mobile devices without lengthy compilation and packaging, and they do not efficiently manage multiple versions of native libraries for backwards compatibility.

Innovation Solution

A method and apparatus for loading multiple versions of a native library into a native environment, which involves a versioning tool that renames function calls at the native and development code levels, recompiles older versions, and packages them for execution within a mobile application runtime, allowing switching between library versions at runtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple versions of native libraries are loaded into a native environment, then backwards compatibility is improved, but device memory consumption increases

Engineering Contradiction:
Improvebackwards compatibilityVSAvoiddevice memory consumption
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent segments the native library into multiple versioned components, allowing different versions to coexist in the same application. Each library version is loaded as a separate module with version identifiers, enabling the system to load only the specific version required by each JavaScript application rather than loading all versions simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a library manager as an intermediary component that mediates between JavaScript applications and native libraries. This manager handles version resolution, loading, and unloading of libraries, allowing multiple versions to be managed efficiently in memory by loading only when needed and unloading when no longer required by active applications.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Manufacturing precision

If standard compilation and packaging processes are used for each JavaScript application, then execution accuracy is improved, but processing time increases

Engineering Contradiction:
Improveexecution accuracyVSAvoidcompilation and packaging time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent implements preliminary action by pre-compiling JavaScript applications into bytecode format and pre-packaging them with required library version information before deployment to the device. This allows the applications to be executed directly from bytecode without requiring compilation at runtime, significantly reducing processing time while maintaining execution accuracy through the use of a bytecode interpreter.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11467854B2Method and apparatus for loading multiple differing versions of a native library into a native environment
Publication Date: 2022.10.11 650 IND INC
  • US11467854B2 patent drawing
  • US11467854B2 patent drawing
  • US11467854B2 patent drawing

AI summary

A method for loading multiple versions of the same native library in a native runtime environment. In one embodiment, the method comprises cloning a native library workspace with a first version number as a cloned native library; applying a namespace across the cloned native library; injecting a macro into source code associated with the cloned native library; adding a dependency to the cloned native library in source code associated with the native runtime environment; and registering the first version number in a project configuration of the native runtime environment.