Microsoft’s Windows 11 announcement surprised us with the news that the upcoming operating system will run Android apps alongside Windows apps. Unfortunately, the keynote was light on details. Will these apps use emulation? Will Windows’ existing Linux support be involved? We got our answers shortly after the keynote, thanks to a follow-up conversation with developers that went over some of the details.
The feature is officially called the “Windows subsystem for Android”, which should tell you a lot about how it works. Windows currently has a “Windows Subsystem for Linux” (WSL), which uses a subset of the Hyper-V functionality to run Linux apps on a real Linux kernel alongside your Windows apps. (Hyper-V gives a second guest OS access to the bare metal hardware instead of running on top of the host OS with less access to resources.) Real Android phones use the Linux kernel, and Microsoft is building an Android framework on top of WSL for the Windows subsystem for Android. It sounds like we’re essentially running x86 Android on Hyper-V.
Android apps on Windows should feel just like native Windows apps, with a top-level window, taskbar entry, and the ability to be pinned to the start menu. During the presentation, Microsoft said, “Behind the scenes, we’re actually creating a native proxy app that bridges the Android app model and the Windows app model.” Presumably, this means the system will provide things like a shortcut to the start menu, icons, entries in the app’s uninstall lists, and other little Windows wrappers that make the app feel native.
Microsoft tries to do this with as little emulation as possible – maybe no emulation at all, depending on the availability of your computer and app. Both Windows and Android run on x86 and Arm architectures, with Android preferring Arm and Windows preferring x86. If you’re on Windows on Arm and want to use an Arm Android app, you’ll be fine. If you’re using x86 Windows, Microsoft will try to send you an x86 version of the desired Android app. But if all that’s available is an Arm app, “Intel Bridge Technology” is here to help by translating that Arm code into something an x86 CPU can run. Microsoft helpfully pointed out that this feature also works on AMD CPUs.
Microsoft’s approach is similar to how a few other operating systems have gotten Android apps up and running. Chrome OS’s Android app support is probably the most prominent example. Chrome OS already runs the Linux kernel, and it stacks a containerized Android framework on top to run apps. If you have an x86 Chromebook, Chrome OS uses Android’s built-in Arm-to-x86 binary translation. If you’re running a Linux desktop operating system, an installation of Anbox will do the same thing – load the Android framework on top of Linux. You can even run Anbox on WSL today.
Many people’s last experience with x86 Android could come from Intel’s 2012-era push for Atom-powered x86 phones, resulting in terrible devices like the early Asus Zenfone line. X86 Android has come a long way since then; the launch of Android Chrome OS in 2016 certainly helped the operating system a lot. Even before that 2016 launch, Google had been pushing for more x86 app support alongside Arm, and Google’s development tools have made spitting out Arm and x86 binaries the standard for some time now. In 2016, Google expected that about 25 percent of Play Store apps would not support x86 and would require Arm translation. Today, with the larger x86 customer base thanks to Chrome OS, that number is probably more favorable.
Amazon, sideloading, and the non-Google Play app ecosystem
Microsoft is not however, using the Google Play ecosystem on Windows. Microsoft isn’t trying to build its own Android ecosystem either, and is instead partnering with Amazon’s, using the same Amazon App Store found on Fire OS devices. Amazon issued a press release, but it doesn’t offer much other than a statement that more details will be released later.
We haven’t seen any end-to-end installation of an Android app on Windows 11 yet, so it’s not clear how all this works. Microsoft has released several screenshots showing the Microsoft Store advertising Amazon App Store Android apps. It appears that Amazon’s app catalog is listed in the Microsoft Store, complete with reviews, screenshots, and a description, but it appears that the Microsoft Store cannot actually install Android apps. The key is in the install button. For Windows apps, it simply says “Get,” indicating that an app will be installed. For Android apps, the button is different. It says, “Get from Amazon App Store,” with a little box and an arrow icon, indicating that it will kick you to a third-party app.
The Wall Street Journal has provided additional details on how this works. It sounds like Amazon is going to build an Amazon App Store client for Windows. You must log in with your Amazon account to download apps. The Microsoft Store is there as a unified app search and not much else. Presumably this means you always have two App Stores running on Windows, with two places to check for updates. It doesn’t sound streamlined.
Microsoft engineer Miguel de Icaza confirmed that Windows 11 supports sideloading for those who don’t want to mess with all this Amazon stuff. You should immediately have options for open source stores like F-Droid and the ability to load APKMirror apps. It will probably only be a matter of time before someone gets the entire Google Play Store up and running.
X86 apps are prevalent on Google Play due to years of defaults and attempts to gain additional architecture support. However, is x86 common in the Amazon App Store? You can sideload the Amazon App Store on any Android device, but the Echo Fire devices that use Amazon exclusively have all been poor. Many apps are universal and run on all architectures, so… maybe.
It would have been nice if Microsoft pulled a Surface Duo and teamed up with Google to get the actual Play Store in Windows 11. The problem with using Android outside of the Play Store is that you lose access to the Google Play Services APIs for things like push notifications. Amazon has been building its own replacement APIs and cloud services for Fire OS for years, and if you can’t have Google Play, that’s the next best thing.
That’s all we have for now about Windows 11 Android compatibility. But rest assured, we’ll take a deeper dive once actual code is available.