Making Android Run on Time

Time predictability is difficult to achieve in the complex, layered execution environments that are common in modern embedded devices. We consider the possibility of adopting the Android programming model for a range of embedded applications that extends beyond mobile devices, under the constraint that changes to widely used libraries should be minimized. The challenges we explore include: the interplay between real-time activities and the rest of the system, how to express the timeliness requirements of components, and how well those requirements can be met on stock embedded platforms. We report on the design and implementation of an Android virtual machine with soft-real-time support, and provides experimental data validating feasibility over three case studies.

[1]  Luís Nogueira,et al.  Evaluating Android OS for Embedded Real-Time Systems , 2010 .

[2]  Soo-Mook Moon,et al.  Evaluation of Android Dalvik virtual machine , 2012, JTRES '12.

[3]  Karthik Dantu,et al.  Real Time Sound Processing on Android , 2016, JTRES '16.

[4]  James Gosling,et al.  The Real-Time Specification for Java , 2000, Computer.

[5]  Mads Tofte,et al.  Implementation of the typed call-by-value λ-calculus using a stack of regions , 1994, POPL '94.

[6]  Philipos C. Loizou,et al.  Design and Evaluation of a Personal Digital Assistant-based Research Platform for Cochlear Implants , 2013, IEEE Transactions on Biomedical Engineering.

[7]  Guoliang Xing,et al.  ORBIT: a smartphone-based platform for data-intensive embedded sensing applications , 2015, IPSN.

[8]  Martin Schoeberl,et al.  Exhaustive testing of safety critical Java , 2010, JTRES '10.

[9]  Kanghee Kim,et al.  Real-time motion control on Android platform , 2015, The Journal of Supercomputing.

[10]  Michael González Harbour,et al.  CPU Isolation on the Android OS for running Real-Time Applications , 2015, JTRES.

[11]  Xiaolin Li,et al.  Guoguo: enabling fine-grained indoor localization via smartphone , 2013, MobiSys '13.

[12]  Jan Vitek,et al.  Static checking of safety critical Java annotations , 2010, JTRES '10.

[13]  Jan Vitek,et al.  High-level programming of embedded hard real-time devices , 2010, EuroSys '10.

[14]  Miguel A. Labrador,et al.  Assessing Jitter in Sensor Time Series from Android Mobile Devices , 2016, 2016 IEEE International Conference on Smart Computing (SMARTCOMP).

[15]  Karthik Dantu,et al.  jUAV: A Java Based System for Unmanned Aerial Vehicles , 2016, JTRES '16.

[16]  M. Timmerman,et al.  Can Android be used for real-time purposes? , 2012, 2012 International Conference on Computer Systems and Industrial Informatics.

[17]  Sang Jeong Lee,et al.  Mobile maestro: enabling immersive multi-speaker audio applications on commodity mobile devices , 2014, UbiComp.

[18]  Ganesh Jairam Rajgurn Reliable real-time applications on Android OS , 2014 .

[19]  Sang Jeong Lee,et al.  SounDroid: Supporting Real-Time Sound Applications on Commodity Mobile Devices , 2015, 2015 IEEE Real-Time Systems Symposium.

[20]  Ling Shao,et al.  A survey on fall detection: Principles and approaches , 2013, Neurocomputing.

[21]  Stefan Kowalewski,et al.  Predictable Broadcasting of Parallel Intents in Real-Time Android , 2014, JTRES '14.

[22]  Lukasz Ziarek,et al.  Real-time android with RTDroid , 2014, MobiSys.

[23]  Lukasz Ziarek,et al.  RTDroid: A Design for Real-Time Android , 2016, IEEE Transactions on Mobile Computing.

[24]  Jan Vitek,et al.  A Robust Algorithm to Detecting Wind Turbine Blade Health Using Vibro-Acoustic Modulation and Sideband Spectral Analysis , 2015 .

[25]  Stefan Kowalewski,et al.  A real-time extension to the Android platform , 2012, JTRES '12.