0

I have created an App which uses a native so library (which I have created too, based on an Open Source project). The so library is about 100MB. The toolchain creates 4 variants of that so file for different architectures (x86, armeabi, armeabi-v7, mips). So the resulting app is about 350MB.

To this point, I think it's reasonable, because the target device could have any of those architectures and so having all of the variants are needed.

But why all of them are being deployed when the App is installed?! (Settings->Apps shows that it occupies the same 350MB) A specific device surely is in one specific architecture. Isn't the Installer smart enough to know only one of them is needed? Or that we have to specify this somehow in somewhere? (in that case, how?) Or that I am wrong to think this way?

Mousa
  • 2,190
  • 3
  • 21
  • 34
  • [This](http://stackoverflow.com/questions/7080525/why-use-armeabi-v7a-code-over-armeabi-code) was related to my question and I got a workaround idea from that, which is to have separate apks for each architecture. – Mousa Feb 09 '14 at 07:10

1 Answers1

0

Google play filters the apk based on the underlying architecture, are you installing your application thru Google play?

G3M
  • 1,023
  • 8
  • 19
  • No I'm installing the apk by adb. However the filtering is not the point, because the app supports all architectures, I'm asking why it copies all the architecture-specific libraries to phone? Because in theory coping the matching one should be enough! – Mousa Jan 30 '14 at 04:38