Android belongs to the leading operating systems for mobile devices, e.g. smartphones or tablets. The availability of Android's source code under general public license allows interesting developments and useful modifications of the platform for third parties, like the integration of real-time support. This paper presents an extension of Android improving its real-time capabilities, without loss of original Android functionality and compatibility to existing applications. In our approach we apply the RT_PREEMPT patch to the Linux kernel, modify essential Android components like the Dalvik virtual machine and introduce a new real-time interface for Android developers. The resulting Android system supports applications with real-time requirements, which can be implemented in the same way as non-real-time applications.
The Android platform is an open source operating system for mobile devices developed by the Open Handset Alliance. Due to its usability and rich set of functionalities, Android is an attractive platform for both, developers and end-users. RTAndroid is a modified version of the Android 2.2 platform extended with a real-time capable scheduler [11]. This modification aims to enable the domain of industrial applications. But unfortunately, the predictability and deterministic behavior of RTAndroid in its current version highly depend on its memory management components. For instance, explicit memory management cannot be used to free objects that were allocated without the knowledge of the developer. Further, invocations of the native garbage collection result in non-deterministic process suspensions during runtime. This paper presents a concept for a real-time capable, automatic memory management mechanism in order to improve the timing and predictability of the process behavior in RTAndroid. The introduced memory management respects the execution cycles and deadlines of running real-time processes. Empirical evaluations highlight the improvements resulting from the applied system modifications.
Operating systems of modern mobile devices, like e.g. iOS and Android, require the applications to conform to a life cycle model, to ensure the functional correctness of the application and its data integrity over exceptional behavior as e.g. out-swapping of the application. The applications life cycle events are triggered asynchronously by the system and depend on the environment. In order to test life cycle dependent properties of the applications, we define a unit testing based approach that uses life cycle callback-methods. The method identifies life cycle dependent properties in the application specification, and derives assertion-based test cases for validating the conformance of the properties. Life cycle triggers are used in the test case execution. The paper describes to which application features the approach can be applied, and the limitations of the approach. A case study demonstrates how to apply our approach to state-of-the-art mobile platforms, using Android 2.2 as an example.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.