If you’ve ever tried to download an app for sideloading on your Android phone, then you know how confusing it can be. Often there are several versions of the same app designed for various device specs—so how do you know which one is the right one?
Understanding the Different File Versions
If you’re reading this, there’s a good chance you’re trying to download an app from APK Mirror, which is a legitimate hosting site for APKs that are available for free in the Play Store. This is an excellent option if the app you want is geo-restricted, not available for your device, or has an update that hasn’t yet made it to your account. Though you may also need this information when downloading things from XDA Developers or other sources.
If that’s where you find yourself, then trying to figure out the proper download for your phone can be a hassle. You won’t have to worry about this if the app you’re looking at only has one version, but some of apps have multiple versions available—for example, YouTube has 40 different variants. This is when you’ll need to know what version is best for your phone.
Generally, the details are broken down into three primary categories:
- Architecture: This is referring to the type of processor in your phone. Usually, the options will be arm, arm64, x86, and x86_64. ARM and x86 are for 32-bit processors, while arm64 and x86_64 are for 64-bit processors. We’ll explain in more detail below.
- Android Version: This is the version of the Android OS your device is running.
- Screen DPI: DPI stands for “Dots Per Inch”—basically this is the pixel density of your phone’s screen. For example, a six-inch full HD screen (1920×1080) has a DPI of ~367. Bump that resolution up to 2880×1440, and the DPI raises to ~537.
Technically, the correct terminology when referring to pixel density should be PPI, or Pixels Per Inch. But since APK Mirror (and others) refers to this as DPI, we’ll stick with the relative terminology.
ARM vs. x86
While Android version and DPI are pretty straightforward, processor architecture is another story altogether. I’ll do my best to break it down as simply as possible here.
- ARM: This is a mobile processor architecture first and foremost, and what the majority of phones run now. Qualcomm’s Snapdragon, Samsung’s Exynos, and MediaTek’s mobile chips are all examples of ARM processors. Most modern chips are 64-bit, or ARM64.
- x86: This is the architecture specification for Intel chips. As dominant as Intel is in the computer market, these chips are far less common in Android handsets. x86_64 refers to 64-bit Intel chips.
This information is especially important because x86 and ARM files are not cross compatible—you must use the version designed for your phone’s specific architecture.
Similarly, if your phone is running a 32-bit processor, the 64-bit APK won’t work. 64-bit processors, however, are backwards compatible, so the 32-bit APK will work fine on a 64-bit processor.
How to Find Your Device’s Correct Information
I know, I know, it’s confusing. The good news is that there’s an easy way to find out all of your device’s information with an app called Droid Hardware Info. This is a free app in the Play Store, and will tell you essentially everything you need to know about your phone.
Go ahead and give it and install and fire it up. We’ll show you where to find exactly what you’re looking for.
The first tab you’re going to want to look at is the “Device” tab, which is what the app opens on by default. There are two key pieces of info here: DPI and Android OS version.
To find the DPI, look at the Software Density entry under the Display section.
For the Android version, look at the OS version under the Device section. This explicitly displays the version number.
For architecture info, slide over to the System tab and check out the CPU Architecture and Instruction Sets entries under the Processor tab. This one isn’t quite as striaghtforward as the others since it doesn’t explicitly say “arm64” or similar, so you’ll have to read between the lines a bit.
First off, if you see “64” in the architecture name, you can pretty much guarantee it’s a 64-bit device. Easy enough. To figure out if it’s ARM or x86, you’ll look at the Instruction Set section—again, you’re just looking for the basic info here, like the letters “arm.”
On my Pixel 2 XL (the above screenshots), for example, it’s pretty clear that it’s an ARM64 device. The Nexus 5, however, isn’t quite as clear—we can see that it’s ARM, but it doesn’t explicitly show it as a 32-bit processor. In this case, we can safely assume it’s a 32-bit chip because it doesn’t specify the 64-bit architecture.
Choosing Which File to Download
With that in mind, let’s go back to our YouTube example above. We’re going to look at the many versions of YouTube on APK Mirror and find exactly which download applies to my Pixel 2 XL. With the device info in hand, we know it’s running a 64-bit ARM processor, has a DPI of 560, and is running Android 8.1.
It’s easy to match the processor type and Android version—arm64 and Android 5.0+. But there’s no specific option for 560dpi.
So, we have two main options to choose from: the highest available DPI—in this case, 480, or “nodpi.”
In this case, I recommend going with the “nodpi” variant, because it contains all the resources available to cover the gamut of DPIs out there. So why not choose this one regardless? Because of the file size—since it contains resources to work on essentially any DPI, it’s a much larger file. If you can find the one that matches your device’s DPI perfectly, always go with that. Otherwise, you can also choose one that’s slightly higher and be OK.
In our test case, however, I’m not convinced that the 480 DPI version will look as good as the nodpi download since the phone is 560 DPI. In that case, the larger file size is worth the tradeoff.
Learning your device’s ins and outs is pretty simple. And fortunately once you figure this info out once you shouldn’t have to worry about it again until you get a new phone.