Android Emulators vs Real Devices
When trying to test your apps, what’s the difference between using Emulators and using Real Devices? Both come with their own benefits and downsides. In this article we’re helping you make the right decision for your situation.
If you’re looking for a quick overview, we’ve summarized some of the key differences below:
|● Instant start & loading of apps
|● Apps take 1-3 minutes to initiate
|● All devices and configurations
|● Limited to devices available
|● Easy to secure
|● Secrets / sensitive information are at risk
|● Full debugging & network logs
|● Limited to device
|● Low cost or free
|● High fixed cost, high maintenance costs
|● No hardware or battery
|● True-to-life hardware simulation
Whether you are a fan of real devices, or a fan of emulators and simulators - it really comes down to your specific needs. That’s why it makes sense to ask yourself some questions.
Do you need to iterate quickly, or do you need to test for every edge case to get to perfection?
Depending on the phase of development you are in, you may need speed more than fidelity. If that’s the case, Emulators are the right choice for you.
Emulators can be loaded up with a new version of your app in under 4 seconds, versus 1-3 minutes for real devices. That might not sound like much, but it’s enough to break your workflow, and particularly when you want to do this regularly.
Real devices provide a true-to-life testing environment, including sensors, cameras and anything else a real device might have. There isn’t anything quite like testing on the real thing.
Does your testing app contain sensitive information?
When you are testing your mobile app it can be tempting to forget about the privacy implications. However, a mobile application can have secret keys or personal information stored in them.
Uploading an app with sensitive information to a real device can lead to some pretty bad repercussions. You might need to disclose leaking a secret key to your customers and rotate all the keys - or even worse, your information could be at risk if a bad actor compromises the devices you are using to test.
If you have sensitive information in your app, emulators are a much safer route. Not only is it easier to test within a completely walled off environment, testing with an emulator also means that the session is only stored in memory. That means that, at the end of the session, the entire record is deleted in an instant.
Do you want to provide access to your apps?
For those in an office, showing off your app is pretty easy. However if you are one of the many people working in a remote team, it can be pretty difficult to collaborate around your mobile apps.
Everyone is running on their own devices, their own environments, and getting someone to have a “quick look” can sometimes involve 2 hours of work for the person who needs to see your app. Obviously, that’s not a great way to work.
In that case, it’s much easier and better to integrate Hosted Cloud Emulators into your development workflows
Are camera, battery or hardware features essential for your user experience?
If you need to test your camera, battery or other hardware features, you typically can’t get around using real devices. Real devices will still only be an approximation, but will give much more accurate output.