Construction of Variable App-Level Process Chains in Android
In an ageing society with an understaffed health sector there is a growing demand for adaptive assistance robots helping to ease the workload of staff and enabling individuals to stay autonomously at home for longer. The need for adaptability includes the demand for the execution of variable tasks that are adapted to user needs and preferences. Means from software variability, as used in software product lines and software ecosystems, can be borrowed to construct such tasks.
This thesis proposes a way of executing those tasks on the Android based adaptive assistance robot platform Loomo. The premise is that tasks can be split into atomic subtasks, which can then be combined to form complex process chains. In the context of Android each subtask is executed by an app.
In the concept suggested in this thesis a task object, which holds a list including all information related to all tasks in the process chain and may have been constructed using means of software variability, is handed to a central manager app. This app retrieves the first subtask app required for the task execution from the task object and starts this app’s execution via an Android Intent, which also contains the task object. Upon finishing, each subtask app starts the next subtask app on the task list. As the manager app is the last entry on the task list it is restarted after the last subtask has been executed.
To prove the feasibility of the concept a prototype was implemented, consisting of a manager app and five subtask apps. In the prototype scenario the robot’s task is to find the user’s glasses. The execution of the task can be adapted to the user’s preferences regarding the output modality, as the robot will either communicate with the user via speech or by displaying text on its display.
Though some open challenges remain, namely the need for controllability while executing a task and the handling of unexpected situations at runtime, the concept developed in this thesis was found to be a feasible option for the execution of variable app-level process chains in Android.
You can download the full submission as PDF file (1 MB) here.