Since smartphones have become a part of our lives, they play an immense role in all of the socio-cultural aspects that shape us. As for Linux power users, using smartphone applications on their computers easily is exceptionally beneficial. Android – although renowned worldwide as the leading mobile operating system – utilizes the Linux ecosystem to reach its lofty goals and objectives.
If you want to enjoy your favorite Android apps or games on Linux, an Android Emulator is the perfect solution! This guide outlines the ten best options available today; so that with a few clicks, you can begin running Playstore apps directly from your Linux system.
Best Android Emulators for Linux
In essence, Android emulators run as sandbox software that simulates the internal hierarchy of your regular Android smartphone. Due to resource constraints, many Android devices cannot run the most trending games or apps smoothly on their smartphone.
Emulators are useful in such situations as they let users run resource-consuming apps on their computers, which usually have more than enough resources for such purposes.
If you’re searching for the best Android Emulators for Linux, chances are you’ll stumble across the name Genymotion almost everywhere. It’s a versatile Linux Android emulator that lets users run Android virtual devices on the desktop and the cloud.
The powerful desktop version offers all the services you’d look for in a top-notch emulator. Genymotion makes sure its users get what they want by providing the option of 3000+ virtual Android device configurations.
It doesn’t matter which Android device you want to emulate; you can find pre-configured images of different Android versions and device images without any hassle in Genymotion. You can allocate resources like memory, storage space, and I/O units just as much as you want to your Android emulator Linux. Genymotion also lets users intuitively test how their app reacts to changes in various battery levels.
Highlights of Genymotion
- App developers can set interruptions for calls or SMS when testing whether their application works correctly or not.
- This Linux Android emulator’s built-in disk IO throttling feature lets emulate devices with very slow internal storage.
- With this powerful Android emulator Linux, you can easily forward sensor events like gyroscope data from any Android device to your Linux machine.
- Genymotion is pixel-perfect, meaning it can display any Android application precisely at its original size on your screen.
- This Linux Android emulator is a hundred percent compatible with Android SDK tools and Studio.
- This multi-platform emulator lets developers test their websites in several Android browsers right from their Linux system.
2. Andro VM
The Andro VM project also comes from the developers at Genymotion, which shows their intention of bringing us the best Linux Android emulator. Like Genymotion, this awe-inspiring Android emulator Linux packs so much power into a single package and definitely falls among one of the best Android Emulators for Linux.
Offline connectivity is where Andro VM triumphs Genymotion. A stable internet connection is mandatory when you run your Android apps or games inside the Genymotion emulator. However, Andro VM lets you run such applications seamlessly without network connectivity.
As Genymotion’s parent project, Ando VM contains many similar functionalities such as compatibility with Android SDK, sensor events following, and many others. The offline operating mode makes this powerful Linux Android emulator stand out.
Highlights of Andro VM
- This Android Emulator Linux comes with built-in support for OpenGL – which, in turn, equipped with adequate PC resources, allows for a far more powerful rendering than you’ll get in your everyday Android device.
- Although very striking in performance and efficiency, this fantastic Android emulator requires you to have Virtual Box installed and configured in your Linux machine.
- Andro VM features default support for Net Sharing from guest to host, a powerful feature missing in many popular Android Emulators for Linux.
- This enigmatic Linux Android emulator is available for 32-bit and 64-bit systems, thus running smoothly in almost every Linux system despite variations in the instruction length of your kernel.
- Contrary to many Linux Android Emulators, Andro VM works smoothly without network connectivity.
Anbox is one of those Android emulators for Linux, which were developed especially for playing with Android applications directly in your Linux system. One of the most modern emulators in this list, Anbox, has enjoyed a cult following its inception into the mainstream emulation world.
This amazing emulation platform’s motto is to enable every developer to run their favorite Android apps in their Linux system irrespective of differing distros. If you are looking for the best Linux Android Emulator to let you play even the most resource-intensive games natively, Anbox is here for you.
This powerful Android emulator Linux places the core Android OS into a containerized platform while abstracting low-level hardware accesses, so you don’t have to worry about performance metrics.
Anbox integrates Android’s core system services directly into your existing Linux operating system, thus allowing for a far more accessible and optimized emulation. No matter what Android application you install, it will act and perform like native Linux software.
Highlights of Anbox
- Anbox puts every component of the Android OS into an optimized container and mixes its core services directly with your Linux machine.
- This modern-day Linux Android Emulator leverages standard Linux technologies like containers (LXC) to differentiate between the emulator and your Linux system.
- You can select from any Android version with this versatile Android emulator – from Cupcake to Oreo.
- The open source nature of this Android emulation project caters to the demand of post-modern developers who like to play with their software and add convenient packages for fun.
- The containerized design of Anbox makes it exceptionally secure compared to most other Android Emulator Linux.
Android-x86 is one of those pioneer Android emulators for Linux that aim to make it possible to run your Android emulation directly into your PC hardware. Their objective was to deliver a top-notch Android emulator for Linux, which will take the Android ecosystem out of the traditional ARM chips used in smartphones and run efficiently in both AMD and x86-based hardware.
And after succeeding in running abundant resource-intensive Android apps without the slightest of lags ourselves, we can assure you that this powerful Android emulator lives up to its prognosis.
One of the best open source Linux projects for Android devs, Android-x86, enables us open source fanatics to modify the emulator as we see fit. Plus, like Andro VM, you can deploy your apps and play with them without any network connection.
Although this Linux Android emulator requires you to install and configure the Virtual Box sandbox for running the emulator, the free downloadable ISO image lets you create your own Live Android distro quite easily.
Highlights of Android-x86
- The Android-x86 requires a Virtual Machine installation to run Android apps but can be installed as a standalone Live system, thanks to the convenient ISO image.
- The default support for netbook native resolution helps this Linux Android emulator adjust appropriately to your PC screen, thus utilizing resources much more optimally.
- Android-x86 comes with in-built support for Wi-Fi and provides an intuitive GUI to access and configure your network connections.
- If you want to mount your existing Android memory storage directly to your Android emulator Linux, you can do so pretty quickly with the Android-x86.
- The default debugs mode features a busybox and will come in handy when locating bugs in your Android apps.
The fifth feature in our list hit the market, targeting people like you who want to get up and running with their Linux Android emulator as fast as possible. Contrary to most Android Emulators for Linux, Shashlik doesn’t require installing a Virtual Machine in your Linux system to function.
Instead, it utilizes an incredibly stripped-down Android base consisting of only the core components and combines it directly into your current system session. As a result, this Android emulator Linux outperforms many of its competitors in terms of performance.
However, the project is still in its development phase. The beta versions are often cradled with some unavoidable bugs, leading many users to choose from other Android Emulators for Linux. Don’t lose excitement, though; Shashlik still supports many surprising and useful Android apps and can be used to emulate even the most resource-massive games. We suggest you try this fantastic Linux Android emulator before settling with any other.
Highlights of Shashlik
- Instead of running inside a Virtual Machine, Shashlik integrates the core Android packages into your active Linux session and acts like native software.
- Shashlik leverages the OpenGL infrastructure of your Linux system to render the graphics, thus leading to a smooth experience when running newer games.
- Although usable in most mainstream Linux distros, Shashlik developers recommend running it on the KDE Plasma environment.
- One thing where Shashlik seriously falls short is the inability to run apps that utilize Google Play Services, so if your app requires a lot of these services, we recommend you look forth.
ARChon is a rather unusual Linux Android emulator that will leave you amazed. By our judgment, this is one of the unique Android emulators for Linux. ARChon doesn’t function inside a Virtual Machine and is unlike any other emulator installed in your Linux system.
Instead, it utilizes the Chrome browser’s powerful runtime and hitches the emulation compounds directly into it. So, no matter what version of Kernel you’re running or what Linux build you’re using, you can effectively run this Android emulator Linux on every system.
ARChon already supports quite an impressive number of Android games and applications, while support for more mainstream applications is in the process as we speak. Installing the ARChon Runtime in your chrome browser, type “chrome://apps” on the address bar and press Enter.
You will need to configure the settings as needed, and you can start trying out the real fun. You can even repackage your Android apps for Chrome to use via ARChon by utilizing some powerful NodeJS modules.
Highlights of ARChon
- Rather than providing full-fledged virtualization of the entire Android OS, ARChon comes into play inside the Google Chrome runtime.
- Although app support is minimal until this guide’s writing, developers can quickly re-build their Android applications for running in this Linux Android Emulator.
- The open source nature of this enigmatic Android emulator Linux lets developers experiment with the software and modify it according to their liking.
- The ability to emulate Android apps without any dedicated Virtual Machine places ARChon among the best Android Emulators for Linux to run into older systems.
7. Android SDK
This is arguably one of the best Android emulators for Linux that you can get your hands on. If you’re looking for official documentation and support directly from Google, the creator of Android, Android SDK is the way for you to go.
Almost anybody who takes Android app development professionally utilizes this powerful Linux Android Emulator to test and run their awe-inspiring Android apps. From surfing the internet to playing around with the latest games, Android SDK opens up a whole new world of Android emulation right in your Linux machine.
Although quite resource-intensive, this amazing Android emulator Linux equips many firepowers to enable you to have a seamless experience of native Android systems and will be more than enough to run traditional Android apps quite smoothly.
On the plus side, the sufficient high-quality documentation and online tutorials of Android SDK make it exceptionally easy to adapt to for even developers newest developers. So, if you’re searching for official Android Emulators for Linux, we wholeheartedly suggest you try the Android SDK at least once.
Highlights of Android SDK
- As the official Android development utility, Android SDK has built-in support for all the Android functionalities, including SD Card support, convenient file transfer, Wi-Fi, GPS, Sensors, and many more.
- Android SDK outshines most Android Emulators for Linux regarding the number of applications supported.
- The emulation is comparably faster than contemporary emulators and can simulate different configurations and features, including ARCore – Google’s augmented reality platform.
- Android SDK allows developers to customize their build as they see fit, leading to more productive app developments.
8. Andy OS
If you are looking for a powerful Linux Android emulator to take your smartphone gaming skills to the next level, Andy OS will arguably be your best bet. This powerful yet sleek Android emulator aims to hit the spot with gamers and is undoubtedly successful.
Apart from its gaming performance, Andy OS has already proven itself one of the best Android emulators for Linux in overall performance. We strongly suggest you check out this mesmerizing Android emulator if all you want to do is play your favorite Android games in max settings.
Although still in its beta release, Andy OS supports comes out with many built-in features to enable you to make the most out of your Linux Android Emulator. It reads the sensor events relentlessly and offers a much better visual experience than your Android smartphone. Overall, Andy OS is one of those flexible Android emulators for Linux that successfully brings your favorite Android apps directly onto your PC screen.
Highlights of Andy OS
- Andy OS lets you sync your regular Android smartphone with the emulator.
- You can use your phone as your Emulator’s controller and send Desktop Push Notifications and Keyboard Mappings pretty easily.
- The ability to use your Android device as a remote or gesture controller when playing games makes this Linux Android emulator far more exciting.
- You will be able to run all of your communication apps, such as Snapchat, Viber, and WhatsApp, directly from your Linux machine with Andy OS.
- Andy OS allows users to extend their storage space on demand, contrary to most other Android Emulators for Linux.
9. Jar of Beans
Originally developed for the Windows operating system, thanks to WINE, Jar of Beans can be easily run on your Linux machine. So, basically, it’s a Linux Android Emulator that’s been emulated by WINE. Installing this resource-heavy Android Emulator Linux can pose some serious hassles, though.
Thus we only recommend you if you’re comfortable installing and configuring non-Linux software through WINE. Apart from the initial inconveniences, Jar of Beans offers many powerful features you’d expect in most everyday Android emulators for Linux.
Jar of Beans lets users install Android applications directly from the Google Play Store, which is a plus if you don’t want to go through loads of re-builds to run your favorite apps. The native support for SD card in Jar of Beans lets you easily mount your existing Android device storage to the Linux Android Emulator.
Although powerful, Jar of Beans has its share of disappointments associated with it, and we’ll only suggest it for people with very few options left for running their Android apps.
Highlights of Jar of Beans
- Jar of Beans comes out with in-built support for Intel Hardware Accelerated Execution Manager (HAXM), which helps this Android Emulator to improve overall hardware acceleration.
- This Android emulator is exceptionally portable, making this an ideal solution for developers who are always on the run.
- You can select and modify the screen resolution as you see fit in Jar of Beans and easily switch between regular Android and Tablet modes.
- The most recent multi-user support lets Jar of Beans users save their customized settings without any obstacles.
Bliss is a powerful open source OS based on Android that aims to run your favorite applications natively in your Linux system. It is one of those Android Emulators for Linux that gives users the power to utilize their system resources more efficiently when running even the most resource-intensive games. The developers have curated an awe-inspiring package that lets almost any Linux users run their favorite Play Store apps like system-level software.
Bliss offers quite a number of ROMs and GSI builds, among which the x86 variant is the one you’ll use to run your Android apps on your Linux Machine. It supports booting from either MBR or UEFI bootloaders; thus, it is guaranteed to run smoothly on almost every Linux computer. A project from the renowned XDA developers, Bliss, is fun to use and powerful when considering performance metrics.
Highlights of Bliss
- Bliss comes with many customization opportunities, so you can easily modify the look and feel of your Linux Android emulator.
- It has been optimized to be as resource-friendly as possible.
- The performance-focused design and implementation make it possible to run even the most demanding Android apps fluently in Bliss.
- Bliss takes security quite seriously and features regular AOSP updates to stop malicious apps from cradling your system.
If you’re a seasoned Linux system user, you should know how hard it is to find the best Android Emulators for Linux. Most professional emulation systems like Bluestacks and NOX aren’t available on Linux, and people quickly end up running old and out-of-fashion Linux Android Emulator.
Our expert team has curated this guide after long hours of research so you can run your Android apps in your regular Linux system as smoothly as possible. We found many of these Android emulators more than capable of handling everyday Android apps, while some, like ARChon, offer a more creative solution to Android emulation. We hope this guide serves you well in your quest to find the best Android emulator for your Linux system.
install Androidx86 CM version from https://www.android-x86.org/releases/releasenote-cm-x86-14-1-r5.html
Open a terminal.
write su and press enter
write enable_nativebridge and press enter. Wait until installation to finish.
play any game some games can be randomly closing but It working well.
jar of beans is not “emulated by wine”
because “wine is not an emulator”
While a lot of people are seemingly trying to hijack this post to spout their concerns over not being able to install things properly (Which is a common outcome on trying new things, so be prepared to do the install a few times, wiping EVERYTHING, and making sure that what you get is semi-stable), I’m simply going to say that while so many are reporting issues with their installs, broken setups and the like, persistence can pay off quite often.
There is a common situation that you did something wrong in the setup, or you missed a vital step.
One of those steps that does a fair bit of progress is using the ‘advance boot’ options, with the usual ‘install to specified harddisk’ with no GUI… When you boot into the LiveCDs and end up installing it in there, it often fails.
Be prepared to install things a number of times, and get learning how it went. By simply doing it once, then posting up a 3 page review on all the things that failed you, all it does is show that you tried it once, then literally gave up.
Like the guy with the threadripper… I simply install this on old hardware to use it, and where they claim that it doesn’t support old hardware highlights that they didn’t view ANY of the documentation as in that OS, there are now 5-8 flavors for such the point…
If you get stuck, keep a USB stick with Ubuntu on it handy… It’ll save you so much time. I myself have 5 USB sticks. 1 with my music on it, as we all need music, and the other 4 all multiboot USBs made with RUFUS and YUMI, with various OSes on it, with one being simply a 1 OS stick, ready to wipe and remake with whatever I’m trialing.
It really just sounds like these guys are simply doing it as a one off, ‘I need to run this on here’ situation, where for years I’ve used the same old machines, running random OSes, striving for simple performance and remote access. I use my old PCs in my garage while working on other projects, so my main machine is inside and away from the dust and fumes.
Again, simply be prepared, don’t ‘blacklist’ things simply because people don’t understand what they are doing, or what they are doing wrong… Ignoring the points, leads you up the garden path, and by doing so you end up prone to missing something simple that will make your work even more simple.
Commented on December 2019:
I agree with people complaining here about most of these emulators being either straight up non functional or missing key features like running ARM apps. However, I would like to mention that, as of now, the official Android SDK Emulator looks incredibly solid and I think most people don’t even consider it because they expect it to only be for developers and be poorly optimized for games.
I avoided it in the first place exactly because of that reason (had the mindset of how it was years ago), and I stayed with Genymotion for a while (which kind of worked, wayyy too much effort to run ARM based applications, something that should have been enabled by default). However, Genymotion started behaving weirdly and I decided to give the android sdk emulator a try.
Even though you’ll probably need to open android studio the first time to create the device you want, there are ways to run the emulator without needing to even open android studio itself.
Some device templates (which you can choose when creating a new device) already have Google Play Services and Play Store pre-installed and I personally didn’t need any extra tweaking to start running fairly graphic intensive applications/games.
So if you don’t mind having a little extra space occupied in your drive because of extra sdk tools and the android studio itself, I recommend giving it a try.
That said, I think this article is way too misleading and should be updated with sincere and proper reviews. One of the emulators listed here doesn’t even have a linux version, c’mon…
Thanks for the research.
But you are just you, and therefore limited.
I allways do my own research, been computing since 1980.
So I read a lot of other opinions about the subject.
And it always takes time and patience.
And a strong will to make it work your way.
The solution that seemed worth trying in the end was android-x86.
I have got android-x86 (64-bit) working good (so far) in qemu/kvm Virtual Machine on Debian host.
Installed from ‘android-x86_64-8.1-r2.iso’.
I did not try any games, so that’s for somebody else to try.
Yes! datestamp comments please.
Task: install an Android emulator with Google Play / Play Store support to log in and install a game to test it as a “simple user”.
Tested host: AMD Threadripper 1950X Debian 9 Stretch 49GB ECC RAM Sapphire RX580 8GB VRAM
Facts without all that “enigmatic” blah-blah-blah
Fact00: Before reading an article, read the comments first, that saves 99.999% time; if comments are blocked/pre-moderated/deleted – do not read the article and black-list the resource;
Genymotion starts at USD 136/yr which is probably great for corporate/business users, but not suitable for startups to test their free game/app and/or just to install Genymotion to make sure it works without having to pay first, as this doesn’t make sense:
All Desktop features except Disk I/O (learn more)
“learn more” doesn’t lead to any explanation of what exactly is limited;
10 minutes wasted trying to find a demo/trial/free version without success;
(02) Andro VM / Genymotion Cloud doesn’t have Google Play;
5 minutes wasted on registration and trying their template (Google Pixel);
(03) To install Anbox.io one needs to install snapcraft.io first with all dependencies; but the Anbox.io docs are missing the very point of how to launch an emulator itself;
The video shows already opened virtual machine, but how it was opened is a mystery;
probably it is there somewhere in the docs, but I couldn’t find it during 30+ minutes, so I moved on;
not everybody are using Chinese Ubuntu;
55 minutes wasted;
(04) Android-x86 installed on Virtualbox doesn’t run anything except Chrome browser; tried both 32 and 64 bit; 32bit doesn’t launch at all; tweaked all possible options without success;
45 minutes wasted including downloading iso files;
Comments always save time, quote:
Ulf berge • 4 days ago
you can’t even open the deb as archive. Useless
not available in Debian packages.
Requires KDE bulky dependencies.
Din’t even try this one as I do not use KDE…
3 minutes to read comments;
3 minutes to understand that it only runs custom APKs, no Google Play/Play Store support;
(07) Android SDK installs within VirtualBox Windows machine, the article doesn’t give any instructions how to actually create a virtual machine; it takes time to dig the docs to understand that you only can run a VM after creating a specific project for this project’s needs, e.g. no Google Play support, cannot download a game to play, or an app to test;
21 minutes wasted, always read the docs first to “save time”;
(08) The link from the article leads to:
Andy doesn’t run on a mobile device, The Linux version is closed for Alpha if you want to join the testers please email [email protected] or visit us again after July 30
1 minute wasted to click the link and copy paste it here in this comment, the record low time waste – thank you;
(09) Jar of Beans
The Authors of this article have not provided any links, so I had to Google it:
Official Site N/A
Company Jar Of Beans
Status of Development
Stopped and Inactive
its download link leads to a malware-filled resource, not recommended.
5 minutes wasted;
link leads to a list of Open Source OS’s
TOTAL time wasted:
(01) 10min + (02) 5min + (03) 55min + (04) 45min + (05) 3min + (06) 3min + (07) 21min + (08) 1min + (09) 5min = 148minutes = 2 hours 28 minute
2 hours 28 minutes or two and a half hours of a lifetime wasted just to try options presented in this article to confirm none of these do work.
That is approx one and a half hours more than downloading and installing a Windows Server 2016 iso with Nox player in it.
Linux Desktop is still not suitable for an efficient Desktop use as a business/ordinary user who values their time and are aiming for efficiency.
It is very sad, but it’s the second half of 2019 and still Linux is in an unusable state for a professional Desktop working environment(s).
Well if someone read that all would clearly see the work you put really into this but no ones gonna read this much , but yes i read and appreciate your work , next time if you try to put up something real good for the people try to put it in within 20 lines , 🙂 like this guy down below.
BOTTOM LINE FOR THIS EMULATOR TOPIC : DONT USE EM ,NOTHING FOR LINUX RN,rather try any android os according to your ui preferences.
same, i’m at 3hrs here and only tried a few. all i want to do is view my IPCamera app ‘anysee’ on my desktop instead of my phone, jeesh. i found a nice easy windows app that works great, but i want to use ubuntu.
Anbox is the way forward for Android on Ubuntu (Debian derivative that uses Snaps as its application packaging format).
“Linux Desktop is still not suitable for an efficient Desktop use as a business/ordinary user who values their time and are aiming for efficiency.
It is very sad, but it’s the second half of 2019 and still Linux is in an unusable state for a professional Desktop working environment(s)”
I agree that Android emulation for Linux is a no-go for practical purposes. But. you’re wrong about the Linux desktop being unsuitable. I have used Ubuntu EXCLUSIVELY since 2005. No Windows, no Mac, just Ubuntu. I run a business; I record and process video; i record and process music and graphics; I write; I maintain my website, I manage my finances; I print documents; I share files across the network; I move files to and from my phone; I use dictation software; and on and on. I can do just as much on my Ubuntu machine that any other person can do on a Windows or Mac and just as efficiently.
Linux isn’t your thing. Fine. But it works out of the box for tons of people who use it exclusively. It is more than suitable as a daily desktop for both home and business users.
1- Genymotion does not run arm apps, and barely runs successfully any apps at all.
2- Andro VM does not exist anymore.
3- Anbox in in pre-alpha state and it will be a long time before it can be usable.
4- Android-x86 maybe one day will be more useful, for now it does not succeed much further than loading android on Linux through a virtual machine. Has trouble running on old computers and few apps work.
5- Shashlik is long abandoned.
6- ARChon is long abandoned.
7- Android SDK is a tool for android developers to use and no more than that.
8- Andy OS does not have a Linux version, neither the Windows version works on Linux.
9- Jar of Beans does not exist anymore.
10- Bliss does not focus on performance neither works on older computers. It’s basically a copy of Android-x86 with a panel.
None of these have anything to do with Bluestacks, MEmu, KoPlayer or Nox or similar applications, which unfortunately do not have Linux versions.
So then if you know so much about android emulation on linux then why, instead of pretty much calling the post completely useles, you give some actually usefull alternatives? It’s probably a better use of your time and a lot more helpfull for the comunity
I’ll say that calling a post useless is quite useful to regular users so they’ll not waste time on false claims, and also as a feedback to post authors, maybe next time they’ll be better motivated to search before posting.
I wasted time(example: modifying code so that unmaintained DKMS modules compile with my newer kernel) on a bunch of those “emulators”(x86_64 VMs) and none worked with native ARM games.
Came here weeks later to see if somebody gave a better option and just now saw that comment that would of been helpful…
@Papi: Thanks for your comment, it saved me a lot of time to do that research myself.
@ MEHEDI HASAN (author) Maybe adding a date to your posts would be helpful so that the reader can have an impression of how up to date the information is.
i confirm that your post is really useful.
i tried android-x86 with 4.4 and 8.2 versions of android. they run in slug mode. it updates some apps, but only chrome can be launched without crashing. play store doesn’t launch at all. your post saves me a lot of time, seeing that half is unmaintained and the other half is broken.
thanks, i won’t need to try 2 weeks more on these.
the only way is to install android on an ARM machine and launch whatever you need.
personally i won’t break my firefly rk3288 server install just to test one app or so.
i hope to find a way to extract java part of an apk and launch it as it is.
linux seems still a hell to manipulate… all you want from it is sketchy as hell.
want to play ? you have a dozen broken solutions for it. lutris steam playonlinux etc…
want to emulate android ? see this post, dozens of broken things.
want to use your pc as a browser-email ? it’s fine. as long as the website isn’t version-specific when it’s about flash. wish.com even flickers…
@Papi – Most useful comment I have seen in a while. Thank you.
Here is the MVP of the post.