Android HAL (Hardware Abstraction Layer) Training Course
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
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
Open Training Courses require 5+ participants.
Android HAL (Hardware Abstraction Layer) Training Course - Booking
Android HAL (Hardware Abstraction Layer) Training Course - Enquiry
Android HAL (Hardware Abstraction Layer) - Consultancy Enquiry
Testimonials (4)
Trainer was willing to explore additional problems in dagger.
Susheel - Home
Course - Dependency Injection with Dagger 2
Trainer knowledge and easiness with which he presented it.
Piotr - DPDgroup IT Solutions sp. z o.o.
Course - Android Applications Testing
I really enjoyed the fairly broad coverage of topics.
john harrigan
Course - Android Development
Antonio gave is much background information, best practices and showed us useful tools to speed up our development process.
Philipp Hunger
Course - Cross-platform mobile development with PhoneGap/Apache Cordova
Upcoming Courses
Related Courses
Android Nougat for Android Developers
21 HoursThis instructor-led, live training in Sweden (online or onsite) is aimed at android developers who wish to build, update, and manage a mobile Android application with Android Nougat.
By the end of this training, participants will be able to:
- Deploy a mobile Android application to the Google Play Store.
- Use object-oriented programming with Java on Android.
Android Applications Testing
21 HoursThis course aims at providing software testers with the required knowledge and skills in order to perform quality assurance tests for software applications that were developed for the Android platform. This course overviews the Android platform capabilities and provides you with up-to-date practices for performing the tests.
Android Fundamentals
56 HoursAndroid is an open source platform developed by Google for mobile development.
Applications for the Android platform are developed in Java.
This course overviews Android's fundamental topics.
Java Fundamentals for Android
14 HoursApplications for the Android platform are developed primarily in Java. This course was developed for software programmers with a strong OOP background (whether in PHP, Scala, C++, C# or Objective C) that plan to learn how to develop Java applications for the android platform. This course covers the Java programming language grammar and focuses on those specific Java capabilities the android platform uses more than others.
Cross-platform mobile development with PhoneGap/Apache Cordova
21 HoursThe objective of cross-platform frameworks is to allow you to write applications once and have it run on multiple platforms. Want to build an iPhone app that will also run on Android? Have a customer turn round and want their Android app to run on Windows Phone? No problem.
On this three-day PhoneGap/Apache Cordova course you will look at two different yet complimentary technologies for cross-platform mobile development. (Apache Cordova is the new name for PhoneGap. Adobe acquired PhoneGap from the original developers and gifted it to the Apache Software Foundation.)
Upon completion of this PhoneGap/Apache Cordova course, you will be able to build fully-functioning mobile Web applications using the framework, manage source code and handle platform tweaks, create “native like” experiences from a web application -- and much more!
Android Development
28 HoursObjectives:
Upon completion of this training course, the delegate will be able to:
- Build their own Android Application and upload it to the Android Market.
- Develop for simulators and real devices.
- Learn all the basics of Android Development.
Develop Android Applications
21 HoursThis course has been created for everyone interested in creating Android applications.
During this course, you will learn the fundamental skills required for building Android applications from scratch using interesting features added to the Android platform, like background processing, database access and location-Based Services.
Android - The Basics
28 HoursAndroid is Google's mobile operating system. This course demonstrates through hands-on practice the fundamentals of Android.
Creating applications on the Android platform
21 HoursAndroid Fundamentals - Fast Track
28 HoursAndroid is an open source platform developed by Google for mobile development.
Applications for the Android platform are developed in Java.
This course overviews Android's fundamental topics.
This is the fast track program that paces up the original training
Kivy: Building Android Apps with Python
7 HoursKivy is an open-source cross-platform graphical user interface library written in Python, which allows multi-touch application development for a wide selection of devices.
In this instructor-led, live training participants will learn how to install and deploy Kivy on different platforms, customize and manipulate widgets, schedule, trigger and respond to events, modify graphics with multi-touching, resize the screen, package apps for Android, and more.
By the end of this training, participants will be able to
- Relate the Python code and the Kivy language.
- Have a solid understanding of how Kivy works and makes use of its most important elements such as, widgets, events, properties, graphics, etc.
- Seamlessly develop and deploy Android apps based on different business and design requirements.
Format of the course
- Part lecture, part discussion, exercises and heavy hands-on practice
Kotlin for iOS and Android Development
35 HoursKotlin is a modern, functional and object-oriented programming language based on Java.
In this instructor-led, live training, participants will learn Kotlin programming as they step through the creation of an Android and iOS app using Kotlin.
By the end of this training, participants will be able to:
- Understand the fundamentals of programming in Kotlin
- Code their own Kotlin application
- Build, test, deploy, and troubleshoot Android and iOS apps using Kotlin
Audience
- Developers
Format of the course
- Part lecture, part discussion, exercises and heavy hands-on practice
Note
- To request a customized training for this course, please contact us to arrange.
RxJava for Android Developers
21 HoursThis instructor-led, live training in Sweden (online or onsite) is aimed at developers who wish to use RxJava to develop and deploy an Android mobile application.
By the end of this training, participants will be able to:
- Set up a development environment that includes needed libraries, packages and frameworks needed for developing a reactive application.
- Understand how data and event streams are emitted and consumed.
- Design applications that model real world (event based) situations in an elegant and concise way.
Android System Programming
28 HoursThis instructor-led, live training in Sweden (online or onsite) is aimed at developers who wish to understand, adapt, and extend Android for different hardware and platforms.
By the end of this training, participants will be able to:
- Set up the development environment needed to start system development for Android.
- Understand how hardware interfaces with system services (applications)
- Develop, test and debug system code iteratively using an Android emulator.
- Load and deploy customized Android on different embedded hardware systems (using simulated/emulated).
Dependency Injection with Dagger 2
14 HoursThis instructor-led, live training in Sweden (online or onsite) is aimed at software architects who wish to use Dagger 2 for dependency injection in Android applications.
By the end of this training, participants will be able to:
- Set up a project with dependency injection with Dagger 2.
- Integrate Dagger 2 into an Android application.
- Implement dependency injection without using third-party frameworks.