Moblie appliances change the nature of the concurrent demands put on applications and the operating systems that support them. Until very recently, concurrency was an optimization trick that allowed an expensive machine to service a queue of tasks effectively. Instead of waiting for something real-world and slow, it could do work on other queued tasks.
With mobile appliances “concurrency” means something more like what used to be called “real time computing”. A mobile device user may be, simultaneously, using a web browser, listening to music, taking direction from a navigation service, and receiving text and phone calls. Furthermore multi-core processors are becoming common on mobile platforms: true concurrency will replace synchronous processor sharing.
The Android OS includes tools at three levels of granularity (in addition to those standard in java.util.concurrent), to address the need for concurrent execution: the managed application lifecycle, the Looper/Handler types, and the AsyncTask template. While these tools are partially successful each introduces its own new problems. In particular, the interactions between the managed application lifecycle and the AsyncTask can be especially problematic.
I am an engineer with more than 30 years of experience, much of it with Java. I’ve built systems as large as Amazon’s massively scalable AutoScaling service and as small as a pre-Android OSS/Linux based Java-like platform for cell-phones. I’m also co-author of the fantastic new O’Reilly book, “Programming Android”
For information on exhibition and sponsorship opportunities at the conference, contact Sharon Cordesse at (707) 827-7065 or firstname.lastname@example.org.
View a complete list of OSCON contacts