Silvia Santini (Wireless Sensor Lab, TU Darmstadt, Germany)
Paul Baumann (Wireless Sensor Lab, TU Darmstadt, Germany)

Date, Time and Location

Monday, March 11, 2013, 13:30--17:00
Room: t.b.a.


Mobile phones are already ubiquitous in many Western countries and their penetration is constantly increasing worldwide. Furthermore, modern mobile phones -- usually referred to as smartphones -- are equipped with a plethora of different sensors and actuators (e.g., camera, accelerometer, GPS, microphone, gyroscope, speaker, or even barometric pressure sensors) and can support several communication technologies (e.g., GSM, Wi-FI, NFC, and soon also ZigBee). Last but least, smartphones typically feature powerful processors and can store significant amounts of data.

Considering the ubiquity of mobile phones and their ever increasing sensing, communication, and computing capabilities, researchers have recently started to look at the collection of these devices as a giant distributed sensing system [1,2]. Using mobile phones it is for instance possible to collect traces of human mobility at an unprecedented temporal and spatial granularity. The analysis of these traces enables investigating several phenomena, like the spread of diseases, the predictability of human behavior, or the reliability of mobile peer-to-peer services [2,3]. The ability to program modern smartphones has thus become an essential and powerful skill for researcher working in the fields of sensor networks, participatory and opportunistic sensing, mobile networking, peer-to-peer systems and many more.

According to a recent press release by Gartner research more than 50% of the new smartphones sold worldwide runs the Android operating systems. The closest competitor, iOS, reaches less than 25% of the users. Furthermore, iOS -- as well as several other minor competitors -- do not offer the same level of flexibility and openness that makes Android the system of choice for many researchers.

This tutorial aims at introducing Android as a programming environment for designing and developing distributed sensing systems for research purposes. The tutorial will provide the fundamentals concepts needed to start programming in Android and then make the attendees implement their first Android application. The tutorial will be "hands-on", thus enabling attendees to write their own Android code. Using a step-by-step approach, the tutorial will guide attendees through several levels of difficulty, as detailed below.

[1] Paul Lukowicz, Alex "Sandy" Pentland, Alois Ferscha. From Context Awareness to Socially Aware Computing. IEEE Pervasive Computing, January-March 2012 (vol. 11 no. 1), pp. 32-41.
[2] Marta C. González, César A. Hidalgo, Albert-László Barabási. Understanding individual human mobility patterns. Nature 453, 779-782, 5 June 2008.
[3] Barbara Keller, Philippe von Bergen, Roger Wattenhofer and Samuel Welten. On the Feasibility of Opportunistic Ad Hoc Music Sharing.Nokia Mobile Developer Challenge Workshop (MDC), Newcastle, UK, June 2012.


  • Basics -- An introduction to the fundamentals concept of Android programming, including: a brief history of Android, the Dalvik virtual machine, the Android stack, basic UI-elements.
  • Reading sensor values -- First hands-on programming experiences in order to learn how to read sensor data, in particular GPS readings, as well as how to access to the Wi-Fi module.
  • Local data storage -- Storing collected sensor data on Android's "native" database (SQLite).
  • NFC read/write -- Using the Near Field Communication capabilities (NFC) to read and store data on NFC tags.
  • Google Maps -- Using the Google maps API to enable contextual data visualization.

About the Presenters

Silvia Santini graduated in telecommunication engineering with summa cum laude from the Sapienza University of Rome, Italy, in May 2004 with a Master's Thesis on “Globalized Likelihood Ratio Test Detection Techniques in Subsurface Sounding Radars”. During her studies she spent one academic year abroad (September 2000 - July 2001) at the Department of Electrical Engineering of the Swiss Federal Institute of Technology (ETH Zurich) in Zurich, Switzerland. Between March and May 2003 she joined the Medical Imaging Group at Philips' Research Laboratories in Aachen, Germany, for a full time internship. In September 2004 she moved again to Switzerland and joined Prof. Friedemann Mattern's Distributed Systems Group at the Department of Computer Science of ETH Zurich as a PhD student. Silvia completed her PhD Thesis on "Adaptive Sensor Selection Algorithms for Wireless Sensor Networks" in October 2009 and she has then been employed as a postdoctoral researcher in Prof. Mattern's group until September 2011. From November 2010 until February 2011 she also joined Leonidas Guibas's research group at Stanford University as a visiting scholar. Since October 2011 she is an assistant professor at the Department of Electrical Engineering and Information Technology of TU Darmstadt, Germany. Her research focuses on wireless sensor networks and mobile sensing systems and stretches to the domains of ubiquitous computing and the internet of things.

Paul Baumann received a Master of Science in computer science from TU Darmstadt in 2011. He graduated with a Thesis on the “Design and Implementation of Adaptive Data Transmission Schemes to Reduce the Number of Transmitted Messages in Context- aware Systems”. He is currently a research and teaching assistant in the Wireless Sensor Networks Lab at the Department of Electrical Engineering and Information Technology of TU Darmstadt, Germany. His research focus lies on mobile sensing and personalized, contextaware navigation systems.