Sometimes when you want to sideload an app on your Android phone, there are multiple APK variants to choose from. Certain apps are designed for specific specs—such as display and processor—so how do you know which one to download?
Understanding Compatibility Issues
Device Architectures: ARM and x86
Most smartphones are built around ARM processors, which include chips like Qualcomm's Snapdragon, Samsung's Exynos, and others. These chips come in two primary variants: 32-bit (ARM) and 64-bit (ARM64). However, an app designed for a 32-bit ARM processor won't work on a device with a 64-bit ARM processor. In addition to ARM, there's also the x86 architecture, commonly associated with Intel chips. It too comes in 32-bit (x86) and 64-bit (x86_64) versions.
Android Version Compatibility
Apps are tailored for specific Android versions, incorporating features, APIs, and frameworks unique to those versions. Apps optimized for a certain Android version might not function seamlessly on devices running a different version due to these variations
Screen DPI Variations
The Dots Per Inch (DPI) measurement denotes screen pixel density. Apps can be optimized to display correctly on screens with specific DPI ranges. Using an app optimized for a different DPI could lead to scaling problems, causing the app's interface to appear distorted or misaligned.
Finding Your Device's Correct Information
Finding your device information will require you to look at the exact device specification of your device from your manufacturer, but alternatively, there's a handy app. It's called Droid Hardware Info, and this trusty free app has been around for a long time, giving you all the nitty gritty details about your Android device.
Please go ahead and install the app from PlayStore if you want to follow along.
After installing the app, go ahead and open it and you will first see the "Device" tab, there are two pieces of information here: DPI and Android version. Copy those details somewhere then slide over to the system tab, there, you will find two entries; "CPU architecture" and "Instruction sets", both under the processor label. The "CPU architecture" will state whether the device contains an ARM or a x86 processor and the "Instructions sets" will state whether the device is a 64-bit or a 32-bit device. If the "instructions sets" doesn't specify the 64-bit architecture, we can safely assume it is a 32-bit architecture. By now, you should have all the information you need.
Here's are two screenshots with my example:
[image] [image]
Picking Which File to Download
Picking the right APK for you android device will now require information about your device's DPI, processor architecture, and android version.
For my device, we will take a look at an example app on APK Mirror. At the time of writing, the latest version of Firefox app has 4 variants(Note that sometimes there could be only one variant). Based on the information shown from the Droid Hardware Info app about my device, I know I need to look for an ARM64 variant with 640 DPI.
[image]
It's easy to match the processor type and Android version — arm64 and Android our version is also above Android 5.0. But there's no specific option for 640 DPI. So we will just choose the "nodpi" variant.
The "nodpi" variants contains all the resources available to support all DPIs out there but its a much larger file since it contains all the resources to work on any DPI.
[image]
Now that you've got the correct APK for your device, the only thing left to do is sideloading it.