Android应用程序中的c# .dll库

本文关键字:dll 应用程序 Android | 更新日期: 2023-09-27 18:16:57

我目前正在使用Monodroid开发android应用程序。我对手机应用程序相当陌生,所以我对一些事情感到困惑:

  1. 什么是android库?我使用Mono模板创建android库:创建一个Mono android类库=>编写代码并构建到。dll =>从Visual Studio运行模拟器,它在模拟器中工作得很好。但是。dll文件是android库吗?或者在模拟器上工作之前由Mono转换,'REAL' android库应该是JAR?

  2. 我可以直接使用我定义的。dll写在c#使这个应用程序?我在Mono中通过直接引用它在我的android应用程序,它正在构建,没有错误。但是当模拟器运行这个应用程序时,它会卡住(仍然没有错误)-在Android应用程序项目中使用c# .dll的正确方法是什么?

我意识到有相当多的主题讨论c#和android之间的链接和关于mono,但阅读后我仍然无法绕过这个库引用问题,所以如果有人可以提供任何提示/想法将是最感激的

Android应用程序中的c# .dll库

  1. 生成的DLL是针对Mono for Android配置文件编译的,该配置文件基于Moonlight (Mono对Silverlight的实现)。在运行时,. net代码直接针对Mono运行时运行,Mono运行时作为应用程序的一部分运行。当。net代码从Java端子类化某些东西时(例如Java. lang . object), Mono for Android会生成可调用的包装器来处理运行时之间的通信。从技术上讲,你可以在你的Mono Android应用程序中使用一个正常的。net DLL,但我不建议这样做。Mono for Android所暴露的配置文件比完整的。net框架要小得多(甚至不能完全等同于Silverlight),所以如果你的DLL引用了一个在Mono for Android中找不到的方法,你的应用程序将会崩溃。相反,我建议为您的应用程序创建一个单独的类库,并使用文件链接在项目之间共享源文件。我的博客文章中有一个如何做到这一点的例子。