当前位置: 首页 > 面试题库 >

通过Java代码将C#库与Mono for Android一起使用?

弓明亮
2023-03-14
问题内容

是否可以通过Java代码将C#库与Mono for Android一起使用?可以使用mtouch命令中的“ –xcode”标志从Objective-
C到C#(MonoTouch)。但是,Mono是否有与Android相当的功能

并且有这样做的理由吗?

谢谢!

格温宁


问题答案:

[是否有可能]通过Java代码将C#库与Mono for Android一起使用?

是。每个Java.Lang.Object子类都有一个在构建时生成的Android Callable
Wrapper
。存在Android
Callable
Wrapper,以允许Java代码调用托管代码(例如,以便在覆盖Activity.OnCreate()时, Android实际上可以调用托管覆盖。

但是,有一些限制。特别是,在Android
Callable Wrapper中声明的唯一方法是重写方法和来自已实现接口的方法。这使Java-> C#方案变得复杂。

[有]这样做的理由吗?

是。当前在许多情况下您不能使用C#,例如使用外部类型android.jar(例如Maps
API)。(有Android.Runtime.JNIEnv,但不适用于子类化场景。)因此,使用Java
API的最简单方法是用Java编写一些代码,然后集成Java和托管代码通过各种机制,包括单独的活动(使用Activity.startActivity()从Java启动托管活动)JNIEnv,服务等。



 类似资料:
  • 问题内容: 如何将Go程序与C库接口? 我一直在浏览Go的源代码,但我仍然没有弄清楚。如果有人已经这样做了,请分享一下吗? 更新: 感谢@fserb,我从Go来源发布了一些文档: Cgo支持创建调用C代码的Go包。 用法:cgo [编译器选项] file.go 调用gcc编译软件包的C部分时,编译器选项将通过未解释的传递。 输入file.go是一个语法上有效的Go源文件,该文件导入伪包“ C”,然

  • 问题内容: 我正在使用用Java(Selenium)编写的外部库。其中一个函数调用具有签名,当尝试从Scala调用它时,我不断收到编译器错误,即: 有没有解决此问题的方法? 问题答案:

  • 我想将股票图表ohlc导出到Excel 我正在使用EPPlus,现在我知道EPPlus不支持绘制股票图表,因此我正在寻找另一个第三方dll,我找到了aspose,但它是一种付费功能。 有人能推荐其他方法导出股票图表用C#代码在Excel中创建股票图表吗? 或者它是可能的创建股票图表ohlc在Excel由C#由EPPlus? 当使用aspal时,我需要在bw代码中使用它,在我保存aspal工作簿的时

  • 13.4. 通过cgo调用C代码 Go程序可能会遇到要访问C语言的某些硬件驱动函数的场景,或者是从一个C++语言实现的嵌入式数据库查询记录的场景,或者是使用Fortran语言实现的一些线性代数库的场景。C语言作为一个通用语言,很多库会选择提供一个C兼容的API,然后用其他不同的编程语言实现(译者:Go语言需要也应该拥抱这些巨大的代码遗产)。 在本节中,我们将构建一个简易的数据压缩程序,使用了一个G

  • 问题内容: 所以我有一个Selenium功能测试套件。我已经在一些测试中测试了登录/注册功能,方法是将Selenium客户端导航到注册页面,输入用户名和密码,然后告诉Selenium使用相同的凭据登录。现在,我想测试站点“需要登录”区域的其他部分,而不必告诉Selenium单击并在测试浏览器中输入文本。 换句话说,我想使用这样的东西(我在视图单元测试中使用得很好): 在我的Selenium测试中,

  • 泛型lambdas能利用“替换失败不是错误”规则吗?例子 是否有任何解决方法或计划将其包含在语言中?此外,由于通用lambda是引擎盖下的模板化函数对象,因此无法做到这一点不是有点奇怪吗?