Android is a widely used operating system for mobile devices and has a reputation for being one of the most secure mobile operating systems available. There are several reasons why Android can be considered a production-ready operating system for different types of embedded systems. Android has several built-in security features, such as encryption, app sandboxing, memory management, support for a complete chain of trust, implementation of a Trusted Execution Environment (TEE), and more. All these features came with several versions of the AOSP, and today its maturity goes way beyond the great Graphical User Interface and user interaction, which initially attracted many embedded developers. For this reason, Android is a truly excellent option for embedded systems and IoT devices.
Android offers an extensive Java/Kotlin SDK for application developers, and the Android framework itself is mainly written in Java with extensive use of Native Interface (JNI). So the question about using existing Eclipse project code or how to benefit from Eclipse IoT cloud platforms from Android-based IoT devices is more than technical speculation.
In this session, we will explore the anatomy of an Android application project and how this can encapsulate and adopt code from existing Eclipse projects when possible. We start with an introduction to the Android Platform architecture to understand the foundation of the Operating System and how the different layers communicate with each other. Moving forward, we will discuss the structure and the dependencies of some Eclipse IoT projects to evaluate the porting into an Android application. Potential targets are Eclipse Paho, Eclipse Hara, Eclipse Leshan, and Eclipse Tahu.
Another perspective is the adoption of Eclipse IoT projects deployed as a service. We must have a working Android client for such services in case we have an Android IoT or Edge device. There may already be a specific Android code base, but most of the time, it could be pure Java or native, intended to work primarily on Linux. Even here, some considerations are evaluations for a successful integration that can save you a lot of time before diving into the code details. Android is gaining traction in different industries, and today, its integration with existing open-source projects is an actual need to avoid reinventing the wheel. This premise applies, of course, to the Eclipse IoT ecosystem, which provides today great technologies for products and services.