Smart Runtime Analyzer for Android ART Layer Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing tools for improving Android application performance, such as Profile Guided Optimization (PGO), fail to utilize valuable information present in the Android Runtime Architecture (ART) Layer, leading to suboptimal results in energy efficiency and performance on mobile devices and edge-computing devices.

Innovation Solution

A smart runtime analyzer and advisor tool that processes internal runtime information from the Executable and Linkable Format (ELF) portion of the ART Layer, combining static and dynamic data to provide diagnostics and advisory information for developers, including relocation information, symbol attributes, and memory usage, and optionally collects dynamic data through a user-installed app for further optimization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If Profile Guided Optimization (PGO) is used to optimize Android applications, then code optimization is achieved, but the tool fails to utilize valuable information in the Android Runtime Architecture (ART) Layer, resulting in suboptimal energy efficiency and performance

Engineering Contradiction:
Improveapplication performanceVSAvoidenergy consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent introduces a runtime analyzer as an intermediary tool that bridges the gap between PGO and the ART layer. This analyzer collects and processes runtime information from the ART layer, converting it into actionable feedback that enhances PGO's optimization capabilities. The intermediary enables effective communication between the compiler optimization process and the runtime environment, allowing optimizations to be based on actual runtime behavior observed in the ART layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements a feedback mechanism where runtime information from the ART layer is continuously collected, analyzed, and fed back to the optimization process. The runtime analyzer monitors application behavior during execution, gathers performance data, and uses this feedback to refine optimization strategies. This closed-loop feedback system enables dynamic adjustment of optimization parameters based on actual runtime conditions, improving both performance and energy efficiency.

Inventive Principle:
Principle #23Feedback

2Productivity

If existing optimization tools are used, then some performance improvement is achieved, but they ignore valuable information present in the ART Layer including relocation information, symbol attributes, and memory usage data

Engineering Contradiction:
Improveapplication performanceVSAvoidruntime information utilization
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent extracts valuable runtime information directly from the ART layer, separating this critical data from the existing optimization toolchain. The runtime analyzer specifically extracts relocation information, symbol attributes, and memory usage data that were previously inaccessible to optimization tools. By taking out this information from the ART layer and making it available to the optimization process, the patent enables comprehensive utilization of runtime data for improved optimization.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The runtime analyzer is designed as a universal tool that can collect and process multiple types of runtime information simultaneously. It handles relocation information, symbol attributes, memory usage data, and other runtime metrics through a single integrated system. This multi-functional approach allows the same tool to serve various optimization needs by leveraging different aspects of ART layer information, maximizing the utility of collected data.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Ease of manufacture

If static optimization methods are used, then development simplicity is maintained, but dynamic runtime information from user systems cannot be collected for further optimization

Engineering Contradiction:
Improvedevelopment simplicityVSAvoiddynamic optimization capability
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent introduces dynamic elements into the optimization process while maintaining a simple static foundation. The system operates in two modes: a static analysis mode that provides baseline optimization with simple implementation, and a dynamic mode that activates when users install the companion application. The dynamic mode enables real-time collection of runtime information from actual user systems, allowing the optimization process to adapt to real-world usage patterns while developers can choose the appropriate level of complexity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent implements preliminary static analysis capabilities that provide immediate optimization benefits without requiring additional user actions. Developers can perform static analysis on their applications to obtain initial optimization results. The dynamic data collection from user systems is set up in advance through the companion application, but the core optimization functionality remains accessible through simple static methods, allowing developers to proceed with development while optional dynamic enhancement is available.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP4195035B1Performance enhancement for application development utilizing smart runtime analyzer and advisor
Publication Date: 2024.11.13 INTEL CORP
  • EP4195035B1 patent drawingFigure 1
  • EP4195035B1 patent drawingFigure 2
  • EP4195035B1 patent drawingFigure 3A

AI summary

Improvement of performance of developed applications using a smart runtime analyzer and advisor is described. An example of an a method includes receiving code at a platform for an application; running the application; accessing runtime layer data for the application; generating static diagnostic and advisory data based on the runtime layer data, and storing the generated static diagnostic and advisory data in a diagnostic and advisory database; receiving dynamic runtime information for the application from operation of the application on one or more user systems; and generating dynamic diagnostic and advisory information based on the received dynamic runtime information, and storing the generated dynamic diagnostic and advisory data in the diagnostic and advisory database.