9
votes

Utilisez des fichiers DLL dans l'application Android

Puis-je utiliser des fichiers DLL (couramment utilisés dans l'application Windows) dans l'application Android?


1 commentaires

Avez-vous réussi à trouver un moyen de réaliser cela? Ou ça ne peut pas arriver du tout? Ma question illustrée ici si vous avez une réponse à Stackoverflow.com/Questtions/28393305/...


4 Réponses :


8
votes

Android exécute sur un système Linux - Les fichiers DLL sont généralement compilés par BYTECODE pour Windows.


0 commentaires

6
votes

DLL signifie "Bibliothèque de liaisons dynamiques" et est un concept Windows. L'équivalent de Linux est tellement (objet partagé).

Vous pouvez vous référer à Cet article dans CodeProject pour des similitudes et des différences entre les deux.

Ce Stackoverflow Question est assez similaire.


3 commentaires

Alors, il n'y a pas de moyen d'atteindre cela?


@Muhammed - non il n'y a pas. Qu'essayez-vous d'atteindre?


Veuillez regarder ici Stackoverflow.com/Questtions / 28393305 / ...



6
votes

Si vous avez les fichiers SRC pour la DLL, essayez de recompiler en tant qu'objet partagé ELF32, puis liez-le que dans votre code Android (- ci-dessous est une solution 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


0 commentaires

1
votes

Vous pouvez utiliser le vin sur Linux pour exécuter des programmes qui ont DLL-S. Les fichiers .apk également que vous avez dans Android (également une version de Linux) peuvent avoir DLL-S si vous avez un temps d'exécution à l'intérieur qui peut exécuter ces DLL-S.

Unité et xamarine à la fois des DLL de support.


0 commentaires