I have ASUS Zenfone 5. How could I filter out or identify ARM-native apps on x86 phones in Play Store or in other app market?


The Google Play Store automatically filters your application to devices with compatible CPU architecture. E.g. if you have a library which is only compiled for ARMv5, your app will only show up for devices with ARMv5 and ARMv7 processors. Your device should show you only apps that are compatible to your device.

Source: Android Developers - Filters on Google Play

Short answer: no, you can't filter those apps manually. You may try to uncompress the APK file and check its configuration, but it will be too much complicated work.

If you need a detailed answer, read further. You may not have understood me completely with above answer I gave, let me explain in details:

There are two types of applications based on native library use (native library is compiled with Android NDK)

  1. Apps with Native library (i.e. these apps use native library with CPU specific architecture and these libraries directly execute on CPU instead of using Dalvik VM/ART)

    These kinds of apps are filtered in Play Store, because there are multiple version of apps present in the Play Store specific to device (for x86 with x86 compiled library, and for ARM with ARM compiled library. Source - Developer can publish multiple APKs with different configuration)

  2. Apps without Native library (these apps execute on Dalvik VM/ART)

    These apps are CPU-architecture-independent, so there is no effect with which device you use these. Also here Dalvik VM will be compiled for your device by device OEM (in your case, ASUS)

  • All the intel devices that are commercialized as of now also support ARM architecture on top of x86. Hence the Zenfone 5 see all the compatible apps, including the one with libraries compiled only for ARM. – ph0b Mar 26 '15 at 8:36
  • Yes but arm-native apps on x86 consumes more power as some work (some library is there on x86 phones to make arm apps compatable )is to be done to make it run ........ so I want to filter out native-arm apps to avoid them – ramkiran Mar 27 '15 at 3:57
  • @ph0b support ARM architecture on top of x86 - Wrong assumption, this concept is called virtualization of ARM on x86, which is done using QEMO. – Prachil Tambe Mar 27 '15 at 13:19
  • @ramkiran "filter out native-arm apps to avoid them" - playstore is already doing it for you. – Prachil Tambe Mar 27 '15 at 13:22
  • The play store doesn't filter these out, because they are supported by the x86 devices. The question here is how to have them still filtered out. One way may be to root your device and edit build.prop to remove mentions to armeabi-v7a, but you wouldn't be able to install these apps anymore. It's easier to check if they are ARM after the fact, you can use this app for that: play.google.com/store/apps/… – ph0b Mar 27 '15 at 17:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.