Exploring Binder Relations

The Binder mechanism has been at the heart of Android since its early days. All key functionalities in the system are accessed through the Binder driver, whether they're requested by regular apps or system components. Binder, in essence, enables Android to build an object-oriented operating system (i.e. Android's system services) on top of a general-purpose operating system (i.e. the Linux kernel.)

Android's "system calls"

One of Android's core building blocks is the Binder mechanism. At a fairly high level, Binder enables us to run an object-oriented OS on top of a general-purose OS; as is described in this interview with one of the engineers behind OpenBinder, Android's Binder ancestor.

ltrace internals

There are a great deal many tools to help developers debug complex applications. Many of those tools are based in one way or another on the ptrace() system call. Such is the case of the quintessential strace command-line tool which allows you to track all system calls made by a Linux process. Another example is gdb which allows you to set breakpoints and step through your code. Yet another example is ltrace which allows you to track the library calls made by applications.

Embedded Android Videos

It's been quite busy since my Embedded Android book came out about 6 months ago. Fortunately I've got some more time to start updating this blog once more. Here's a good start, four full hours of Embedded Android videos from Linaro Connect Hong Kong in March 2013. This is the standard workshop I've given at numerous conferences, albeit in a compressed format ;) Enjoy!

Inside Android's UI / ELCE

Last week I had the chance to present the "Inside Android's UI" presentation at the Embedded Linux Conference Europe in Barcelona. Lots of new material in this one, covering all parts of the graphics stack from the JellyBean perspective. See for yourself:

Conf Galore

Time flies. Here are the presentations I did at LinuxCon, LinuxPlumbers, ESC India and ADC3. The ADC3 and Plumbers presentations are similar to some I had done before, but the LinuxCon presentation really cuts into new ground and asks a very important question: Is Android the New Embedded Linux? In sum, while the jury is still out, a lot of things point in that direction.

Extending Android's HAL

Contrary to standard "vanilla Linux", Android requires more than just proper device drivers to function on hardware. It in fact defines a new Hardware Abstraction Layer (HAL) which defines an API for each type of hardware supported by Android's core. In order for an ODM's hardware to properly interface with Android, it must provide a hardware "module" (unrelated to kernel modules) which conforms to the API specified for that type of hardware. This blog shows you how to extend Android's HAL by adding your own new type hardware to the Android stack.

ESC SV 2012

The ESC SV 2012 is almost over but not just yet. However, to make things simpler for everyone attending this afternoon's Embedded Android Workshop part 2 I'm posting this blog to give everyone access to the slides from earlier sessions this week.

BeagleBone Android

In preparation for ESC Silicon Valley, I recently got my hands on a BeagleBone -- thanks to Jason Kridner. As you may know, the Bone is a trimmed-down version of the full BeagleBoard. The former retails for about 89$ while the latter goes for around 149$. Both are perfect for tinkering and prototyping.

ABS & ELC 2012

Last week was the Android Builders Summit and Embedded Linux Conference. The usual crowd was there along with a lot of newcomers. Based on an informal poll during my keynote it looks like 75% of the ABS attendees were new to the event. That's very cool. It's definitely becoming the most important platform-development conference for Android out there. The ELC is a more mature venue and has been running for quite some time. It's a great place to reconnect will the key Embedded Linux players.