automate toolkit

Documentation of the automate toolkit

View mint-hagenberg on GitHub

General Information

The automate toolkit app is a logging framework for tracking mobile device usage and context information across arbitrary Android apps in a convenient and customizable way. A variety of different kinds of data can be tracked, like e.g. user interactions on widgets, interaction types (tap, scale, fling, ...), device information (device type, carrier name, OS information, ...) and also some context information (language, current location, …). The app can be used for starting and stopping the tracking process, changing the settings and triggering the file export. The collected data will be solely stored locally in CSV files which can be accessed using the built in export function.

The automate toolkit is free software that is licensed under the GNU General Public License (GPL) version 3 (or later). It is a result of the R&D project AUToMAte (Automated Usability Testing of Mobile Applications) of the Research Group Mobile Interactive Systems of the University of Applied Sciences Upper Austria, which was funded by the Austria Research Promotion Agency (FFG) in the Cooperation and Innovation programme (COIN “Aufbau”) under contract number 839094.

How it works

The automate toolkit tracks data by acting as an accessibility service and extracting the needed information from incoming accessibility events. The idea behind the toolkit is to help developers of mobile apps to understand how their users are interacting with the app without changing/modifying their source code (e.g. adding logging code). This can be achieved by using the implementation based on Android’s AccessibilityService. To track usage data, you just have to install the automate toolkit app on your device and grant rights to run as an accessibility service. The data tracked by the automate app will be stored locally on the device in comma-separated values (CSV) files. Simple as that…

automate overview
Figure 1. A simple overview of the automate toolkit.

The automate toolkit can be easily configured through the automate app. This app displays the current status of the tracking process and can be used to activate or deactivate the tracking of certain types of data (e.g. number of interactions, used apps, light sensor data, etc.). The app requires the permission to run as an accessibility service to get access to the information of interest. In the following section, a list with all categories of data available so far is shown.

If you are looking for measurements which are not yet tracked (e.g. temperature, noise) or you want the data to be stored remotely (e.g. in a database on a remote server), we recommend to continue reading the developer documentation, which contains a description how to extend the automate toolkit. The developer documentation contains a description how to extend the automate toolkit.

automate overview detailed
Figure 2. A detailed overview of the automate toolkit.

What you get

The automate toolkit is capable of tracking mobile device usage and context information. Which of the following kinds of data is tracked can be customized in the toolkit app.

  1. App Usage Data - see app sequence manager for more details
    1. Visited pages (“screens” within an app)
    2. Dwell times (per page)
    3. Number of interactions (per page)
    4. Device orientation
  2. Interaction Data - see widget interaction manager for more details
    1. Type of interaction (click, scroll, long click, …)
    2. Interaction target
  3. Network Data - see network info manager for more details
    1. Network type
    2. Network subtype
    3. Roaming status
  4. Device Data - see device info manager for more details
    1. Device description
    2. Country of origin
    3. Language
    4. Network operator
    5. Operating system
    6. Screen resolution
  5. Battery Data - see battery info manager for more details
    1. Battery level
    2. Charging status (dis/charging, …)
    3. Temperature
    4. Voltage
  6. Context Data - see light condition manager for more details
    1. Light condition
  7. Orientation Data - see orientation change manager for more details
    1. Device orientation

Quick Technical Information

The automate toolkit was designed to be easily extensible. The main components are responsible for starting/stopping the tracking process, receiving accessibility events, extracting the necessary data and storing it locally in a CSV file. The processing of the data is handled by so called managers. Each manager handles a certain kind of related data (e.g. the device info manager handles the tracking of the set language and the country of origin).

Accessibility conformant apps are sending accessibility events, triggered by user interactions. The automate toolkit is listening to these events and distributes them across the registered managers. If data like the surrounding noise, which is currently not tracked, should be recorded as well, a new manager has to be developed. Visit Extend the automate toolkit to see how to develop and use a new manager.

To get more detailed information about ideas and concepts behind the automate toolkit, visit More information. If you are more interested in a hands-on experience, visit Download and try automate. To see how the automate toolkit works in detail and get your hands on some lines of code, continue with Build @home. Finally, if you have developed something related to automate that could be a valuable extension for the toolkit, visit Extend the automate toolkit to see how you can contribute.


The automate toolkit is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

The automate toolkit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with the automate toolkit. If not, see

More Try Build Extend

More Information

Download and try automate

Build @home

Extend the automate toolkit