DEX File Optimization for Faster Android App Deployment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems for deploying user apps on Android devices face significant challenges with long initial deployment times and incremental update turnaround times, as they require extensive processing and optimization of DEX files, which can be time-consuming and inefficient.

Innovation Solution

The proposed system employs a dedicated install agent that optimizes DEX files on the user device in real-time as they are received, and uses helper apps to streamline the deployment process by creating a shared data folder for optimized DEX files, allowing the runtime agent to load and execute the optimized versions directly.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If DEX files are optimized after complete APK deployment, then optimization completeness is ensured, but initial deployment time is significantly increased

Engineering Contradiction:
Improveoptimization completenessVSAvoidinitial deployment time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The system performs DEX file optimization in advance during the build process on the host system. The build system compiles and optimizes DEX files before deploying them to the device, so that when the APK is installed, the DEX files are already optimized and can be loaded immediately without device-side optimization delays.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The deployment process is segmented into distinct phases: build-time optimization of DEX files on the host system, separate transmission of optimized DEX files or APK to the device, and immediate loading by the runtime agent. This segmentation allows optimization to occur independently before deployment, avoiding the time penalty of post-deployment optimization.

Inventive Principle:
Principle #1Segmentation

2Reliability

If full APK is deployed to device for optimization, then complete app functionality is ensured, but incremental update efficiency is reduced

Engineering Contradiction:
Improveapp functionalityVSAvoidincremental update efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system extracts and transmits only the specific DEX files or classes that have changed since the last deployment, rather than deploying the entire APK again. The runtime agent on the device receives these incremental updates and integrates them into the existing app, maintaining full functionality while significantly reducing update time and data transfer requirements.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The build system performs preliminary identification of changed DEX files or classes before incremental deployment. By pre-analyzing what has changed and preparing only those specific components for transmission, the system avoids the overhead of deploying and optimizing entire APKs during incremental updates, thereby improving update efficiency while maintaining app reliability.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If DEX files are transmitted and optimized sequentially on device, then memory usage is reduced, but deployment speed is decreased

Engineering Contradiction:
Improvememory usageVSAvoiddeployment speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

DEX file optimization is performed in advance on the host system during the build process, so that by the time files are transmitted to the device, optimization is already complete. This eliminates the need for sequential optimization on the device, allowing parallel transmission and loading of multiple optimized DEX files without the speed penalty of sequential processing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system enables continuous deployment by pre-optimizing DEX files and transmitting them in a streamlined manner. The runtime agent continuously receives and loads optimized DEX files without interruption or sequential optimization delays, maintaining continuous deployment flow while managing memory usage through efficient loading strategies.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10296323B2System and method for fast initial and incremental deployment of apps
Publication Date: 2019.05.21 ZEROTURNAROUND
  • US10296323B2 patent drawing
  • US10296323B2 patent drawing
  • US10296323B2 patent drawing

AI summary

A system and method for deploying user apps to user devices is disclosed. A service module on a host system maintains class files of the user app within an original archive, and creates an install agent archive and a modified user app archive from the original archive. In some embodiments, the service module deploys an install agent from the install agent archive and a runtime agent of the modified user app archive to the user device. In other embodiments, the install agent and the runtime agent are pre-installed within a virtual machine of the user device. The install agent receives the class files from the service module, and the runtime agent loads and executes the class files to deploy the user app on the user device. In a preferred embodiment, the system enables faster initial deployment and redeployment of user apps on Android user devices than current systems and methods.