Which Android ABIs (CPU Architectures) do i need to serve?

Viewed 1810

I decided to upload multiple APKs for different ABIs to shrink my apk filesize massively. Therefore I built with android -> splits -> abi -> enable true (applevel build.gradle).

I encountered those different APK flavours:

  • arm64-v8a
  • armeabi
  • armeabi-v7a
  • mips64
  • mips
  • x86_64
  • x86

Which of those flavours do I need to serve/upload to the google play store?

I'm asking this because I've heard the following:

  1. x64 devices can run x86 apks, therefore they need no seperate apk
  2. nobody on earth (except emulators) use mips and x86 (also 64)

Is this true? Do I only need to upload arm-v8a & armeabi? What about armeabi-v7a, do I need this flavour?

2 Answers

For someone who might be checking this out in the future, I don't think the x_86 or x86_64 devices need to be supported anymore in 2021. A simple search on the play console (device catalog) yields the following results:

Out of 13,333 devices supported by Android at the moment

13 devices support x86_64 (Mainly intel)
88 devices support x86 (Intel, Asus Zenfones)
5,198 devices support arm64-v8a
8,097 devices support armeabi-v7a

So by supporting just the arm ABI's you'd pretty much be covering 99.7 % of android devices.

Source: Google Play Console Device Catalog (Release -> Device Catalog -> Filter by ABI's)

Unless you have some device specific need, I would go for:

  • arm64-v8a
  • armeabi-v7a
  • x86_64
  • x86

This assumes you are targeting a modern version of android and building with the newer NDK. mips and armeabi have been on a retirement plan in the NDK and are removed in the latest versions.

mips64 was supposed to go primetime a couple years ago but I can't say I've ever seen it in the wild.

Related