- Home /
Creating and using a native android plugin for different architectures
So, I've already been through all the docs on creating native plugins and using them on Android, including the fact that you can use both java and c to create the plugin. I've also successfully compiled and used my plugin, and all is well so far.
However, I recently thought of something: When you compile native code for android, the NDK gives you different builds for different platforms (armeabi, armeabi-v7a, mips and x86 for the specific library I'm using).
I'm guessing the c++ code is compiled to machine code, so it's natural that NDK would generate different .so files for different platforms. However, I've found no way of telling Unity to use one or the other, except that you can only copy one set of these .so files over (they're named identically). Is there some sort of folder structure or file name convention that allows me to include .so files for all platforms?
I know that almost all Android devices use the ARM architecture (which is the plugin version I've been using up until now), but seeing as it's not a game, I'd still rather have my application run on as many devices as possible.
Answer by liortal · Jul 27, 2014 at 10:24 PM
I don't think this is possible.
I've scanned the Unity documentation for Android, but could not find any listing for supported Android device architectures.
Looking at the Unity folder structure however, may reveal more information, specifically this folder:
Installation>\Editor\Data\PlaybackEngines\androidplayer\release\libs\
It seems that the Unity engine itself (which is also implemented as a .so library) is available for armeabi-v7a only (no other library is provided).
Oh dammit, how'd I get so forgetful? Thanks for the re$$anonymous$$der!