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

2

8

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?

Lighthouse answered 27/9, 2017 at 17:1 Comment(1)
I'd assume that providing an armeabi-v7a would let your app run faster on devices with ARMv7 CPUs but not 64-bit ARMv8. Otherwise you're limited to a baseline instruction set that's compatible with older ARM CPUs as well. (IDK how modern the target instruction set for armeabi is. If it's Thumb2, that could be better in some cases than ARMv7a if that implies ARM mode (32-bit instructions instead of the compact Thumb2 encoding).)Cultured
B
12

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)

Bik answered 4/2, 2021 at 5:33 Comment(4)
These statistics say nothing about how many devices of those types there are, so they are useless. Personally, I say that if it's not too much bother to build for those platforms, there is no good reason to exclude those users.Tameika
Umm at times the size of the apk blows up because of native code that is replicated to support all these ABIs, so in order to reduce the size of the apk, one could ignore the less distributed ABIs.Bik
No, Google requires uploads to the Play Store to be in AAB form nowadays, from which Google will split out different apks for different architectures automatically.Tameika
Completely agree. This is for those who haven't migrated to using the app bundle yet and still use apk's. Like me..lolBik
H
2

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.

Highwayman answered 21/8, 2018 at 3:7 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.