Android Concurrency

by G Blake Meike

Published 27 June 2016
Write Apps for Maximum Performance and Responsiveness

“Threading and concurrency are as important in mobile as they are in large, distributed systems. This book does an excellent job of re-introducing us to the basic concepts and describing how to apply them to the Android framework. Even the most experienced Android developer should pick up at least a few tricks from these pages.”
—Dave Smith, PE, Google Developer Expert for Android

Mastering concurrency is critical to developing software with superior performance and responsiveness. This is especially true for Android, where interruptions are frequent and abrupt, and in order to be correct, programs must be aware of component and process lifecycles in addition to being thread safe.

You need a deep, Android-specific understanding of concurrency—and Android Concurrency delivers it. This guide in Addison-Wesley’s Android Deep Dive series for experienced Android developers helps you leverage today’s multi-core processors and heavily cached architectures, as well as major improvements built into Android 5 (Lollipop).

Top Android developer and consultant Blake Meike strips the magic and mystery from concurrent programming and presents intensely practical solutions for everything from inter-thread communication to network communication. Meike introduces a simple but powerful architectural framework you can use to address new issues whenever they arise, and offers expert guidance for debugging even highly complex concurrency issues.

Android Concurrency combines in-depth knowledge, proven patterns and idioms, and world-class insights for avoiding performance-killing mistakes. For serious Android developers, it will be an indispensable resource.

You will
• Gain new clarity about what concurrency really is, and how concurrent processes work
• Master best practices for writing concurrent code that’s more robust and less susceptible to weird, hard-to-diagnose errors
• Review the Java concurrency mechanisms Android’s constructs are built upon
• Shape an approach to concurrency that reflects the unique characteristics of the Android environment
• Avoid widespread misconceptions that lead Android developers into trouble
• Make the most of AsyncTask—but only when it’s the right tool for the job
• Leverage the powerful, lightweight Looper/Handler framework to support scheduled, asynchronous tasks and execute many message types
• Use the Android Service component to separate business logic from UI
• Understand the differences between started and bound services and use them effectively for intra- and inter-process communication
• Perform scheduled tasks, including tasks requiring polling and explicit scheduling
• Track down problems via static analysis, annotations, and assertions


Inside the Android OS

by G Blake Meike

Published 28 August 2019

The Complete Guide to Customizing Android for New IoT and Embedded Devices

Inside the Android OS is a comprehensive guide and reference for technical professionals who want to customize and integrate Android into embedded devices, and construct or maintain successful Android-based products. Replete with code examples, it encourages you to create your own working code as you read---whether for personal insight or a professional project in the fast-growing marketplace for smart IoT devices.

Expert Android developers G. Blake Meike and Larry Schiefer respond to the real-world needs of embedded and IoT developers moving to Android. After presenting an accessible introduction to the Android environment, they guide you through boot, subsystem startup, hardware interfaces, and application support---offering essential knowledge without ever becoming obscure or overly specialized.

Reflecting Android's continuing evolution, Meike and Schiefer help you take advantage of relevant innovations, from the ART application runtime environment to Project Treble. Throughout, a book-length project covers all you need to start implementing your own custom Android devices, one step at a time.

You will:

  • Assess advantages and tradeoffs using Android in smart IoT devices
  • Master practical processes for customizing Android
  • Set up a build platform, download the AOSP source, and build an Android image
  • Explore Android's components, architecture, source code, and development tools
  • Understand essential kernel modules that are unique to Android
  • Use Android's extensive security infrastructure to protect devices and users
  • Walk through Android boot, from power-on through system initialization
  • Explore subsystem startup, and use Zygote containers to control application processes
  • Interface with hardware through Android's Hardware Abstraction Layer (HAL)
  • Provide access to Java programs via Java Native Interface (JNI)
  • Gain new flexibility by using binderized HAL (Project Treble)
  • Implement native C/C++ or Java client apps without bundling vendor libraries