嘿,我是一个Xamarin初学者,我对如何构建我的应用程序以确保跨平台功能,同时编写最少的代码感到有点困惑。我有一个用C编写的库,以前使用这个库时,我会走NDK路线(对于android),现在我必须在我的Xamarin.Android和Xamarin.ios应用程序中使用这个库。我想知道实现这个目标的最好方法是什么。我是创建共享库还是PCL?我是否能找到一种方法将库编译成dll,并将其包含在Xamarin项目中?
发布于 2016-07-13 01:49:08
链接到C“原生”库并没有真正改变,因为你使用的是Xamarin,你仍然需要构建所有不同的ARCH类型,创建通用的/胖的库,等等。
在iOS上,您将链接到静态库或加载一个.dylib
iOS Linking/Interop Native Libraries
在安卓系统上,你可以像使用NDK一样使用.so (Xamarin.Android会生成一个基于NDK的应用程序):
Using Native Libraries on Android
*注意:如果你使用的是Visual Studio,你也可以在调试Xamarin.Android C#项目的同时调试你的“本机”C/C++。
在您的C#代码中,为了访问在其中任何一个中定义的方法,您可以使用Mono的P/Invoke功能,该功能与在.NET中用于访问基于C的库中的函数的技术相同。
https://stackoverflow.com/questions/38334653
复制相似问题