APK 文件如何包含 DLL 文件? Android可以运行DLL文件吗?

Posted

技术标签:

【中文标题】APK 文件如何包含 DLL 文件? Android可以运行DLL文件吗?【英文标题】:How does an APK file include DLL files? Can Android run DLL files? 【发布时间】:2018-10-01 23:18:58 【问题描述】:

我反编译了一个使用 Unity 引擎开发的用于教育目的的 android 游戏 .apk 文件。

当我遇到 DLL 文件时,我感到非常惊讶。

这怎么可能?

【问题讨论】:

它不是非托管 dll 代码。它只是一个 C# 托管代码,Unity/Mono 可以在运行时加载和执行。如果那是一个 umanaged(C++) 编译的 dll,它将无法工作。 【参考方案1】:

它可以包含 dll 文件,因为它还包含一个可以执行这些 dll 文件的运行时。

Unity3D 和 Xamarin 都包含在应用启动时启动的单声道。

当单声道世界需要从 Java 世界调用某些东西时,它使用 Java 本地接口 (JNI) 来执行此操作。

至于逆向工程 dll 文件,您通常可以使用 .NET 反编译器打开这些文件,例如 ildasm、dotPeek、.NET Reflector 等等。

【讨论】:

以上是关于APK 文件如何包含 DLL 文件? Android可以运行DLL文件吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何将.lib 导入.dll?

设置包含布局的子元素的属性

Cordova 无法使用 x86_64 lib 文件夹构建 APK

Qt:如何导入没有头文件和lib文件的dll

如何制作.apk文件[重复]

在 apk 中包含文件