Multi-Objective Improvement of Android Applications

08/22/2023
by   James Callan, et al.
0

Non-functional properties, such as runtime or memory use, are important to mobile app users and developers, as they affect user experience. Previous work on automated improvement of non-functional properties in mobile apps failed to address the inherent trade-offs between such properties. We propose a practical approach and the first open-source tool, GIDroid (2023), for multi-objective automated improvement of Android apps. In particular, we use Genetic improvement, a search-based technique that navigates the space of software variants to find improved software. We use a simulation-based testing framework to greatly improve the speed of search. GIDroid contains three state-of-the-art multi-objective algorithms, and two new mutation operators, which cache the results of method calls. Genetic improvement relies on testing to validate patches. Previous work showed that tests in open-source Android applications are scarce. We thus wrote tests for 21 versions of 7 Android apps, creating a new benchmark for performance improvements. We used GIDroid to improve versions of mobile apps where developers had previously found improvements to runtime, memory, and bandwidth use. Our technique automatically re-discovers 64 existing improvements. We then applied our approach to current versions of software in which there were no known improvements. We were able to improve execution time by up to 35

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/12/2022

DinoDroid: Testing Android Apps Using Deep Q-Networks

The large demand of mobile devices creates significant concerns about th...
research
09/14/2022

Non-Functional Testing of Runtime Enforcers in Android

Runtime enforcers can be used to ensure that running applications satisf...
research
02/02/2017

Algorithmic Performance-Accuracy Trade-off in 3D Vision Applications Using HyperMapper

In this paper we investigate an emerging application, 3D scene understan...
research
06/27/2018

Performance and Programming Effort Trade-offs of Android Persistence Frameworks

A fundamental building block of a mobile application is the ability to p...
research
04/19/2023

Towards Objective-Tailored Genetic Improvement Through Large Language Models

While Genetic Improvement (GI) is a useful paradigm to improve functiona...
research
12/16/2022

A Comprehensive Survey of Benchmarks for Automated Improvement of Software's Non-Functional Properties

Performance is a key quality of modern software. Although recent years h...
research
10/08/2020

Test4Enforcers: Test Case Generation for Software Enforcers

Software enforcers can be used to modify the runtime behavior of softwar...

Please sign up or login with your details

Forgot password? Click here to reset