Android HAL (Hardware Abstraction Layer) Training Course

Course Code

androidhal

Duration

21 hours (usually 3 days including breaks)

Requirements

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

Audience

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

Overview

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 (online or onsite) 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

Introduction

  • 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

Troubleshooting

Summary and Conclusion

Testimonials

★★★★★
★★★★★

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 for a good mixture of IT and soft skills in Luxembourg!

As a NobleProg Trainer you will be responsible for:

  • delivering training and consultancy Worldwide
  • preparing training materials
  • creating new courses outlines
  • delivering consultancy
  • quality management

At the moment we are focusing on the following areas:

  • Statistic, Forecasting, Big Data Analysis, Data Mining, Evolution Alogrithm, Natural Language Processing, Machine Learning (recommender system, neural networks .etc...)
  • SOA, BPM, BPMN
  • Hibernate/Spring, Scala, Spark, jBPM, Drools
  • R, Python
  • Mobile Development (iOS, Android)
  • LAMP, Drupal, Mediawiki, Symfony, MEAN, jQuery
  • You need to have patience and ability to explain to non-technical people

To apply, please create your trainer-profile by going to the link below:

Apply now!

This site in other countries/regions