Announcing : AiC 2.0, an Open Source Android cloud emulator
Hello there, I am Jonathan Rivalan, project manager for the Open Source Android cloud emulator : AiC 2.0. And today, along with the sources being published, i’m gonna drive you quickly through its main features and the background story behind the project.
Android versions x Compatible devices x Tests to be run = Fragmentation issue
Every single developer can understand how hard it is to develop applications expected to work seamlessly on numerous versions of an OS, deployed on numerous devices. Especially when you need to run tests for each potential combinations.
Google makes a dashboard available as part of the Android developer documentation showcasing current use of Android versions. At the time of this article, 11 minor versions are in use, spreaded over 5 main versions (ranging from 2.x to 7.x).
Coming to physical devices, Google published a document listing all of Google play supported devices, 242 pages long, and summing up for a whooping 14K+ supported devices.
Even assuming a mere 10% is in use, that would be more than 1000 devices to maintain, which would need a complete reinstall if you‘re in need to rerun your tests campaign on a different Android version. Making it hard if not impossible for editors to drive in-house large scale tests campaigns.
The Saas version of Android
In 2012 when first specifying AiC 2.0, mostly 3 solutions were available for emulating Android. The Android Studio suite developed and maintained by Google and the community, Genymotion which is a successful, developer acclaimed product published with closed sources and Androidx86, technically not emulating but porting the Android system to x86, when it usually is running on ARM architecture.
All these solutions had at least 2 things in common, they were local, provided a single Android instance at a given time, and had a strong tie with the user system hardware in terms of performance. Not every box could at this time emulate the last version of Android KitKat on let’s say a brand new Nexus 4 config, not to mention support for graphical hardware acceleration.
So we roll up your sleeves and one step at a time aimed to send Android in the cloud. Offering what virtualization had best to offer : physical layer abstraction for both the Android devices and the user hardware, delivering Android instances right into developers browsers.
Although our main aim was to provide an easy, hardware dependency free, access to Android instances, we did consider to implement mechanisms project-management oriented.
Tests description We provide an easy to use test expression system, built on top of UIAutomator. Following the Gherkin philosophy, it enables writing user stories in a natural way, which can both set the sensors at desired values and perform functional actions and controls.
Asynchronous campaign Finally, our users can configure and launch asynchronous campaigns, that run tests (AiC2.0 natives or UIAutomator ones) on a specified Android versions set. Each Android instance is accessible while the campaign is running, and once ran, user is granted access to a detailed stack trace, enlighting what went wrong.
AiC2.0 is not a one company effort, on the opposite it united industrials (alter way, zenika, thalès) to work along with academics (lip6, liafa) for 3 years. To provide a bit more background, AiC2.0 was a french project financed thanks to a public innovation program known as the FUI and sponsored by Systematic GTLL cluster.
Use and Contribute
If you read this article up to this point then you may have some interest in either using the solution or contributing to it. We are open to both proposals. In cooperation with OneLab we are now opening access to test the platform hosted at UPMC (Université Pierre et Marie Currie). Create a OneLab account (and select “alterway” as an organization) https://portal.onelab.eu/register and access the platform https://aic.onelab.eu.
We would be more than glad to have you onboard !