Question

In an app I am developing, I need to use a C library. This means I'm going to have to deal with all the different instruction sets of all the different Android devices, right?

Is there any list available (or maybe somebody can just tell me?) of all these instruction sets? I know that all Android devices so far are 32-bit, but of course there's a lot more to it than that.

Était-ce utile?

La solution

The big three are ARMv5, ARMv7, and x86. ARMv7 devices can run ARMv5 instructions. ARMv7 CPUs have a floating-point co-processor, though, whereas ARMv5 do not. Hence, if you are doing a lot of floating-point work, I'd definitely have the NDK generate .so files for each of those architectures. If you are not doing floating-point math, you could try skipping ARMv5.

While most Android devices are powered by ARM, x86 is making a late comeback. I have a blog post discussing libhoudini as a way to avoid having dedicated x86 binaries, at a performance cost.

There is also Android support for MIPS. The next MIPS-powered Android device I see will be my first. Hence, developers often don't worry about this one, even though the NDK supports it (IIRC).

Autres conseils

Here is the List of android sets :

  • armeabi
  • armeabi-v7a
  • armeabi-v7a-hard
  • arm64-v8a
  • x86
  • x86_64
  • mips
  • mips64
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top