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.
- 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
tests, threads, services, support tools
exercises presentation of examples
A large number of examples and a wide range of knowledge of the teacher
I really enjoyed the fairly broad coverage of topics.
Learning about the overall ease of using Android Studios to build android apps.
Very comprehensive of a general overview. Exactly what I was after.
All of it was excellent and well taught. Very interesting.
It was very interesting and I gained a lot of valuable knowledge.
The trainer's passion and extensive commercial experience thanks to which he is perfectly listened to.
Weegree Sp. z o.o. Sp.k.
Course:Develop Android Applications
Exercises were fun and it was good to see how quickly an application can be developed in Android Studio.
Course:Android Fundamentals - Fast Track
Detail level and number of labs
I like the teaching style very friendly and informative on the subject.
breaking down the multiple services, actions, devices, etc into the component parts.
Delaine Stoutenburgh - FedEx
The detail given about each topic was really nice, he made sure we understood each topic before moving to the next.
Richie Wood - FedEx
Training materials, Exercise's & Trainer
Knowledge of trainer
The lecture book and lab
Lectures (David is very knowledgeable on Android)
Johnny Miller - FedEx
Instructor's great knowledge about the material.
Clear and repeated emphasis on important aspects of Android development
The set of lab material seems really good. It's a great resource to keep after the training.
Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie
I really appreciated the instructor's openness to questions and the thorough, justified answers provided. He was clearly keenly interested in the subject and as a result the course was much more enjoyable.
SAA Consultants LTD
Course:Android Fundamentals - Fast Track