As a new member of the Ravello team and an avid tinker of everything Android, I have been investigating how to utilize the AWS or Google cloud to create a continuous integration environment for Android development. Over the past few weeks my colleagues and I have written on the following topics:
Until today, it was not possible to run hypervisors (such as KVM, ESXi etc.) in cloud environments, as cloud providers do not expose the instruction set needed for hypervisors to run (see here). However, recently, we announced support for KVM in AWS – using Ravello’s nested virtualization technology.
In our earlier blogs we have shown you how to setup an android emulator in a cloud VM using AWS or Google Cloud and why Ravello HVX can significantly boost the speed of an android emulator in a cloud VM.
Why the Android emulator runs very slowly on AWS & Google cloud – and how you can make it 16x faster
If you have ever tried running the Android emulator on AWS, you have probably seen that it is really slow. In fact, its so slow that its practically not usable.
The reason for this is that the Android emulator is optimized to run on Linux/KVM on physical hardware (a developers desktop or a server in the data center).
In just a few years, Continuous Integration has become a standard practice for software development teams around the world. CI promises, and delivers, significant benefits in code quality and agility. These benefits are no doubt the driving forces behind the speedy adoption.
Mobile applications are everywhere these days, and the clear leader in the mobile operating systems arena is Google’s Android with over 80% of the smartphone OS market.
As such, the development and testing of Android applications for various Android versions and devices, with all the associated challenges in them is becoming an increasingly important topic.
Let’s look at the world of mobile app development. On one end of the spectrum, there are brand new mobile applications or services, which are built from scratch and in almost all cases use one of our existing public user identities (google, Facebook, twitter etc.). Most of these applications are consumer oriented like gaming apps, location based search apps, collaboration/messaging and probably many more, that if I could speculate, I would be starting my own mobile app company.
At Ravello Systems, our mission is to make the cloud look more like the datacenter. I have written about this many times, including on our advanced technology that makes this possible. In this blog, however, I will talk about something completely different: running the Android operating system in the cloud.
Android of course is Google’s smartphone operating system with a 79% market share. Together with Apple’s iOS, it forms the basis for a multi-billion dollar app economy.
The vast majority of Android devices today run on the ARM processor. When developing applications, developers can test their software by running it on an ARM emulator provided by Google as part of the Android SDK. The emulator is a full system emulator and is based on the QEmu open source project. It emulates an entire ARM-based handset and runs the Android operating system as a virtual machine inside it.