Application Installation via Stripped Package and Patch Decompression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for downloading and installing applications are inefficient, as they often require transferring large amounts of data, including all executable components, even if not all functionality is used, leading to increased wait times and network resource usage.

Innovation Solution

The proposed technique allows a computing device to efficiently download applications by determining which application elements are already installed and reusing those elements, rather than sending all elements. This involves creating a stripped version of the application and sending patches separately, enabling the reuse of compressed application elements without cascading small local changes into large global changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all application elements are transferred to install an application, then the application can be fully installed, but the amount of data transferred increases and install time increases

Engineering Contradiction:
Improveapplication installation completenessVSAvoidapplication install time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The application is divided into multiple elements (libraries, resources, code files). The system identifies and transfers only those elements that are not already present on the device, rather than transferring the complete application package. This segmentation allows selective installation of missing components only.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Before transferring application elements, the system performs preliminary analysis to identify which elements already exist on the device and which are missing. This preliminary action enables the transfer process to skip already-present elements, reducing overall transfer time and data volume.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If compressed application elements are patched using conventional techniques, then updates can be applied, but the patched version becomes larger in size

Engineering Contradiction:
Improveapplication element update capabilityVSAvoidpatched application element size
Core Design Contradiction:
Adaptability or versatilityVSWeight of moving object

Solution Approach 1:

The patching process is segmented into distinct phases: decompression of the original compressed element, application of updates to create a new version, and recompression of the updated element. This segmentation allows the system to maintain compression efficiency while applying updates.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The compression parameters and algorithms are optimized during the recompression phase to achieve better compression ratios for the updated elements. By adjusting compression parameters, the system reduces the size of patched elements compared to conventional patching approaches.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP4296849B1Accelerating application and sub-package installations
Publication Date: 2025.04.23 GOOGLE LLC
  • EP4296849B1 patent drawingFigure 1
  • EP4296849B1 patent drawingFigure 2
  • EP4296849B1 patent drawingFigure 3

AI summary

In some examples, a method includes downloading, from an application provider, a patch to be applied to a first application element and a stripped version of the application that does not include one or more application elements to be reused during installation of the application, decompressing the first application element to generate a decompressed version of the first application element, and decompressing the patch to generate a decompressed version of the patch. The method may also include applying the decompressed version of the patch to the decompressed version of the first application element to generate a patched application element, compressing the patched application element to generate a compressed patched application element, and installing the application using the compressed patched application element, the stripped version of the application, and the one or more application elements other than the first application element.