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.)
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.
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.
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!
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:
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.
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.
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.
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.