Android SDK Extensions
One of the great advantages of using Android as an operating system for Embedded devices, that are not necessarily smartphones, lies in the paradigm that any application developer (Java, Kotlin, C ++) can become a developer for embedded systems. This is empowered by a powerful SDK and a very friendly and effective development environment (Android Studio) that facilitates the deployment of the code on an emulator or physical device.
Obviously this advantage comes with a cost. The abstraction provided by the SDK in the interaction with the underlying hardware is limited to specific devices (generically present on smartphones) such as WiFi, Bluetooth, IMU, GNS (etc). However, even for these devices the low-level support by the Android HAL must be guaranteed.
On the other hand, it is known that Android SDK lacks the support of some buses, protocols, and I/O that are relevant in an embedded system such as: CANbus, Ethernet, GPIO, i2C, SPI, PWM.
To compensate, Kynetics has developed a series of SDK Extensions that offer additional tools for developing applications that maintain the benefits of using Android on embedded systems.
SDK Extensions are provided as AAR libraries to be included in your Android studio project and require that the OS has been prepared to support the underlying I/O and buses. In particular, the support by the kernel and user-space are pre-requisites for the correct functioning of the SDK extensions.
SDK Extensions belong to the application developer domain whereas preparing Android to support those extensions is the domain of the Android Platform Developer.
Available SDK extensions are:
- CAN Bus
- GPIO
- Serial
- SPI
- PWM
- Ethernet