Smart Runtime Analyzer for Android ART Layer Optimization
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
Figure 1
Figure 2
Figure 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.