Static Instrumentation for Mobile Apps in Resource-Constrained Environments
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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.
3Loss of information
If sensor code is injected into application code, then monitoring capability is improved, but device resources are consumed
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.
Data Source
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.


