Static Instrumentation for Mobile Apps in Resource-Constrained Environments

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Mobile applications running in restricted environments face challenges in instrumentation due to limited hardware resources and the inability to perform dynamic code manipulation, making manual placement of sensors cumbersome and error-prone for monitoring performance and functionality.

Innovation Solution

The development of an automated instrumentation process that statically instruments mobile application code, using knowledge of common libraries to identify and modify code parts with sensor code, and introduces a sensor-independent agent for communication with monitoring servers, allowing for selective sensor disabling and coexistence with manual instrumentation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If dynamic instrumentation of bytecode is performed during application runtime, then measurement visibility is improved, but it is not available in mobile environments due to resource restrictions

Engineering Contradiction:
Improvemeasurement visibilityVSAvoidinstrumentation capability
Core Design Contradiction:
Loss of informationVSAdaptability or versatility

Solution Approach 1:

The patent applies preliminary action by performing instrumentation during the build process before the application is deployed to mobile devices. The instrumentation server statically instruments the application code and generates instrumented bytecode that is then packaged with the application. This eliminates the need for runtime instrumentation capabilities on resource-constrained mobile devices while still achieving comprehensive measurement visibility.

Inventive Principle:
Principle #10Preliminary action

2Loss of information

If manual placement of sensor calls is performed in source code, then instrumentation is achieved, but the process is cumbersome and error prone

Engineering Contradiction:
Improvefunctionality visibilityVSAvoidinstrumentation process
Core Design Contradiction:
Loss of informationVSEase of manufacture

Solution Approach 1:

The patent implements self-service by enabling the instrumentation server to automatically analyze application code, identify instrumentation points, and generate sensor placement code without manual intervention. The server uses the application's own metadata and code structure to determine optimal instrumentation locations, eliminating the need for developers to manually place sensor calls while maintaining comprehensive functionality visibility.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The instrumentation server acts as an intermediary between the application code and the sensor infrastructure. It receives uninstrumented application code, processes it through automated analysis, and outputs instrumented bytecode with embedded sensor calls. This intermediary approach consolidates the complex instrumentation logic in a centralized server rather than requiring manual sensor placement throughout the application codebase.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of information

If sensor code is injected into application code, then monitoring capability is improved, but device resources are consumed

Engineering Contradiction:
Improveperformance visibilityVSAvoiddevice resources
Core Design Contradiction:
Loss of informationVSUse of energy by moving object

Solution Approach 1:

The patent applies preliminary action by performing all instrumentation work during the build process before deployment to mobile devices. The instrumentation server statically analyzes and instruments the application code once, generating optimized instrumented bytecode that is then packaged with the application. This eliminates the need for continuous runtime instrumentation overhead on mobile devices while maintaining comprehensive performance visibility.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10705811B2Method and system for automated, static instrumentation for applications designed for execution in environments with restricted resources, like mobile devices or TV set top boxes
Publication Date: 2020.07.07 DYNATRACE LLC
  • US10705811B2 patent drawing
  • US10705811B2 patent drawing
  • US10705811B2 patent drawing

AI summary

A system and method for automatic instrumentation of mobile applications is presented. Mobile applications are typically executed in mobile runtime environments or operating system that is restricted compared to their conventional counterparts. Those restrictions include features that allow one to examine and modify code of application during the runtime of the application. Those features that are used by instrumentation based monitoring systems dedicated for conventional applications are thus not available for the instrumentation of mobile application. The system and method allow automatic instrumentation in a static way, either by persistently placing instrumentation code into mobile applications or by persistently adapting mobile applications in a way to perform a static instrumentation on application startup. The instrumentation code is placed in generic, application independent library code, but provides measurement and context data that allows one to determine specific business logic functionality using the instrumented generic library code.