2011-01-25 14 views
6

¿Puedo usar archivos dll (comúnmente utilizados en aplicaciones de Windows) en la aplicación de Android?Usar archivos dll en la aplicación de Android

+0

¿Se las arregló para encontrar una manera de lograr eso? o no puede suceder en absoluto? mi pregunta se ilustra aquí si tiene una respuesta a http://stackoverflow.com/questions/28393305/using-dll-library-in-android-application –

Respuesta

7

Android se ejecuta en un sistema Linux: los archivos DLL suelen compilarse en códigos de bytes para Windows.

4

DLL significa "Dynamic Link Library" y es un concepto de Windows. El equivalente en Linux es SO (Objeto compartido).

Puede consultar this article en CodeProject para ver las similitudes y diferencias entre los dos.

Este Stackoverflow question es bastante similar.

+0

Entonces, ¿no hay una manera de lograr eso? –

+0

@Muhammed - No, no hay. ¿Qué estás intentando lograr? – Lior

+0

amablemente eche un vistazo aquí http://stackoverflow.com/questions/28393305/using-dll-library-in-android-application –

3

Si tiene los archivos src para la DLL, intenta volver a compilar como un objeto ELF32 compartida, vincularla lugar en el código de Android (- a continuación es una solución de 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 

Ahora debería poder usar el archivo .so resultante en su proyecto de Android.

Cuestiones relacionadas