Использование dll-файлов в приложении android
4 ответов
DLL означает "динамическая библиотека ссылок" и является концепцией Windows. Эквивалентом в linux является SO (Shared Object).
вы можете обратиться к в этой статье в CodeProject для сходства и различия между ними.
этой Stackoverflow вопрос очень похож.
Если у вас есть файлы src для DLL, попробуйте перекомпилировать как общий объект ELF32, а затем связать это вместо вашего кода Android (- ниже приведено решение Windows):
set NDK_HOME=C:\Android\android-ndk-r9c // customize this var for your own location
set LD_LIBRARY_PATH=%NDK_HOME%\platforms\android-18\arch-arm\usr\lib
cd <C_SOURCE_DIRECTORY>
REM -- TEMPORARILY COPY SOME LIBS COMPILER MAY NEED
copy %NDK_HOME%\platforms\android-18\arch-arm\usr\lib\crtbegin*.o .
copy %NDK_HOME%\platforms\android-18\arch-arm\usr\lib\crtend*.o .
REM -- GENERATE YOUR OBJ FILE
%NDK_HOME%\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64\bin\arm-linux-androideabi-gcc.exe -g -I%NDK_HOME%\platforms\android-18\arch-arm\usr\include -c -fPIC YourLib.c -o YourLib.o
REM -- GENERATE SHARED OBJ FROM OBJ FILE
%NDK_HOME%\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64\bin\arm-linux-androideabi-gcc.exe -g -L%NDK_HOME%\platforms\android-18\arch-arm\usr\lib -shared -o YourLib_so.so YourLib_so.o
REM -- finally, remove the libraries previously copied to src directory
del .\crtbegin*.o
del .\crtend*.o
теперь вы сможете использовать полученный результат .Итак, файл в вашем проекте Android.
вы можете использовать Wine в Linux для запуска программ с dll-s. И еще .файлы apk, которые у вас есть в Android (также версия Linux), могут иметь dll-S, Если у вас есть время выполнения внутри, которое может запускать эти dll-s.
Unity и Xamarin поддерживают библиотеки DLL.