Android HAL (Hardware Abstraction Layer) Training Course

Course Code



21 hours (usually 3 days including breaks)


  • C/C++ programming experience.
  • Java programming experience.
  • Knowledge of hardware and software architecture.


  • Linux system developers
  • Android system programmers
  • Developers who want to get into Android system programming


Android HAL (Hardware Abstraction Layer) is one of the lower layers in the Android OS software stack (right above the Linux kernel). It is a hardware specific implementation that provides an interface between system services (e.g., camera software) and the hardware drivers for that service (e.g., camera driver).

This instructor-led, live training (onsite or remote) is aimed at developers who wish to write HAL interfaces to enable Android applications to talk to the underlying hardware.

By the end of this training, participants will be able to:

  • Set up the development environment needed to start HAL development for Android.
  • Implement a HAL interface to enable Android services to communication with hardware device drivers.
  • Understand how a HAL module is loaded by an Android system.
  • Develop, test and debug HAL code iteratively using an Android emulator.
  • Load and deploy HAL modules onto a physical Android device for real-world testing.
  • Understand and implement HAL's re-architectured HIDL on Android 8.0 devices.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.

Course Outline


  • Android HAL as a hardware specific implementation.

Overview of the Android Platform Architecture

The HAL Development Cycle for Hardware Vendors

Case Study: Interfacing Low-Level C/C++ with High-Level Java

Preparing the Development Environment

Setting up an Android Emulator

Creating a HAL Implementation

Understanding the File Structure of a HAL Interface (C headers, hardware/libhardware, etc.).

HAL vs HIDL (HAL Interface Definition Language)

Coding for HIDL on Android O.

Packaging Code into a Library Module (.so) File

Writing an Application Level Code in the Java API Framework

Calling the Device Hardware from a Java Service

Debugging the HAL Module

Deploying a HAL Module

Updating HAL to New Versions of Android OS


Summary and Conclusion



Related Categories

Related Courses

Course Discounts

Course Discounts Newsletter

We respect the privacy of your email address. We will not pass on or sell your address to others.
You can always change your preferences or unsubscribe completely.

Some of our clients

is growing fast!

We are looking to expand our presence in Malta!

As a Business Development Manager you will:

  • expand business in Malta
  • recruit local talent (sales, agents, trainers, consultants)
  • recruit local trainers and consultants

We offer:

  • Artificial Intelligence and Big Data systems to support your local operation
  • high-tech automation
  • continuously upgraded course catalogue and content
  • good fun in international team

If you are interested in running a high-tech, high-quality training and consulting business.

Apply now!

This site in other countries/regions