Skip to the content.

license license

Table of Contents

Introduction

Data Release

Platform Requirements

Codebase Organization

For Developers

Introduction

Our research focuses on slow Android UI responsiveness for interactive mobile systems, particularly on Android devices. Currently, there is a lack of comprehensive research in the academic community regarding slow Android UI responsiveness, and the fundamental causes behind it are not clear. Leveraging our position as a major Android phone vendor, we conduct an extensive crowdsourced study involving 47 million Android devices to meticulously scrutinize SUR occurrences. To achieve this, we have implemented a continuous monitoring infrastructure for collecting data at the system level whenever SUR events manifest. This infrastructure is seamlessly integrated into a tailored Android system dubbed Android-MOD. Subsequently, we analyze the collected data, unveiling a multitude of underlying factors contributing to SUR events. Upon closer examination, our analysis reveals that the majority of SUR events can be attributed to system-wise resource contention, primarily caused by the wide existence of “hogging” apps. In response to this primary root cause, we propose an effective solution by remodeling the Android process management. This innovation has yielded substantial reductions in both the occurrence of SUR events and overall battery consumption.

This repository contains our released data and the implementation code of 1) the continuous monitoring infrastructure and 2) optimization techniques. It’s worth noting that our Android-MOD system is built upon the foundation of vanilla Android versions 10, 11, and 12, in conjunction with Linux kernel versions 5.12, 5.13, and 5.14. Consequently, developers can run the code in this repository by applying these modifications to the respective framework and kernel components.

Data Release

We have thoughtfully made available a portion of the representative dataset here, taking meticulous care to ensure proper anonymization. Regarding the complete dataset, we are currently engaged in discussions with the relevant authority to determine the extent to which it can be publicly released. We will release the complete dataset once we have obtained the required permissions and conducted the requisite data desensitization procedures.

For each file in the dataset, we have provided specific information in conjunction with their respective descriptions, outlined as follows:

dataset
|---- models.xlsx
|---- apps.xlsx
|---- app-scenario.xlsx
|---- memory.xlsx
|---- iOS-Android.xlsx
|---- energy.csv

models.xlsx

Column Name Description
model Device model
release_time Release time of the device model
CPU_model CPU type
CPU_frequency CPU frequency (in Hz)
memory RAM capacity (in MB)
storage ROM capacity (in MB)
version Android version
user Proportion of users for this model
prevalence_bopt(%) Prevalence of SUR events before optimizations
frequency_bopt Frequency of SUR events before optimizations
rate_bopt(%) Frame drop rate of the model before optimizations
energy_bopt Daily energy consumption of the device before optimizations (in mAh)
prevalence_aopt(%) Prevalence of SUR events after optimizations
frequency_aopt Frequency of SUR events after optimizations
rate_aopt(%) Frame drop rate of the model after optimizations
energy_aopt Daily energy consumption of the device after optimizations (in mAh)

apps.xlsx

Column Name Description
app Application name
package Application package name
category Genre or classification of the application
DAU Daily active users
ADUEDPU(s) Average daily user engagement duration per user (in seconds)
PDAU(%) Proportion of daily active user
DAUC Daily app usage count
PDAUC(%) Proportion of daily app usage count
PDAUCPU(%) Proportion of daily app usage count per user
PDUD(%) Proportion of daily usage duration
ANDAUTPU Average number of daily app usage times per user
NDSURPU Number of daily SUR events per user

app-scenario.xlsx

Column Name Description
scenario Specific scenarios within apps, e.g. com.tencent.mm/com.tencent.mm.ui.LauncherUI
SUR_cnt Daily number of SUR events of such a scenario
device_cnt Daily number of devices where SUR events occur in such a scenario

memory.xlsx

Column Name Description
app App name
foreground_2019 Memory consumption of apps in 2019 running in the foreground (in MB)
background_2019 Memory consumption of apps in 2019 running in the background (in MB)
foreground_2020 Memory consumption of apps in 2020 running in the foreground (in MB)
background_2020 Memory consumption of apps in 2020 running in the background (in MB)
foreground_2021 Memory consumption of apps in 2021 running in the foreground (in MB)
background_2021 Memory consumption of apps in 2021 running in the background (in MB)
foreground_2022 Memory consumption of apps in 2022 running in the foreground (in MB)
background_2022 Memory consumption of apps in 2022 running in the background (in MB)

iOS-Android.xlsx

Column Name Description
app App name
Android_CPU_utilization(%) CPU utilization of apps on Android devices
iOS_CPU_utilization(%) CPU utilization of apps on iOS devices
Android_process_number Number of processes of apps on Android devices
iOS_process_number Number of processes of apps on iOS devices
Android_memory_consumption Memory consumption of the app on Android devices (in MB)
iOS_memory_consumption Memory consumption of the app on iOS devices (in MB)

energy.csv

Column Name Description
oneid Unique identifier for the event
date Event date
event_name Event Name
model Device model
version Android version
battery_capacity Total capacity of the device’s battery (in mAh)
battery_life_screen_on_duration Duration the battery lasts with the screen turned on (in seconds)
battery_life_screen_off_duration Duration the battery lasts with the screen turned off (in seconds)
battery_life_screen_off_at_night Duration the battery lasts overnight with the screen turned off (in seconds)
battery_life_screen_off_dry Duration the battery lasts with the screen turned off without any background processes running (in seconds)
battery_life_screen_off_at_night_dry Duration the battery lasts overnight with the screen turned off without any background processes (in seconds)
battery_charging_duration Duration taken to charge the battery (in seconds)
battery_on_battery_duration Duration the device battery lasts without charging (in seconds)
battery_total_consumption Total battery consumption (in mAh)

Platform Requirements

Linux

For modifications pertaining to Linux, our code has been punctiliously executed and rigorously validated across multiple Linux kernel versions, specifically 5.12, 5.13, and 5.14. It’s noteworthy that, despite the substantial revisions introduced in Linux kernel 5.13 and 5.14 relative to 5.12, our code maintains its compatibility seamlessly across these versions, owing to the consistency of specific tracing points and core functions.

Android

For Android-related modifications, our code has been methodically deployed and rigorously tested on Android 10, 11, and 12. It’s important to highlight that despite the significant evolutionary changes introduced in Android 12 and 11, in comparison to Android 10, our code seamlessly applies to all of these versions due to the stability of the pertinent tracing points and relevant functions.

Codebase Organization

At present, we have made available a portion of our implementation code for your reference here. We are currently engaged in a thorough review of the codebase to ensure that it complies with all privacy regulations and standards. Upon the successful completion of this examination and the receipt of requisite permissions from the relevant authority, we will release the complete source code of this study.

The codebase has been structured as follows:

code
|---- continuous monitor infrastructure
|---- remodeling

For Developers

For developers engaging with our codebase, it’s imperative to recognize that our software is licensed under the Apache 2.0 license, in alignment with the licensing policies of both the Android Open Source Project (AOSP) and the Linux Kernel. We kindly request that all modifications and commercial utilization adhere to the corresponding open-source policy. Additionally, we wish to convey that while certain segments of our code may currently remain unavailable, we are working towards securing the necessary permissions and will release these sections in due course.