Android项目在Java上本地运行,NDK项目基本上是通过启动本地代码的特殊活动来工作的。例如,SDL有一个活动,它初始化SDL,设置一个显示窗口,然后启动项目。
我想看看Xamarin是怎么做到的。从技术上讲,CLR代码是托管代码,而不是本机代码,但是CLR本身就是本机代码,对于Android运行时来说,整个过程就像是NDK项目。我一直在四处寻找,但我找不到Android项目的启动程序在Xamarin中的位置,而在谷歌上搜索却没有发现任何有用的东西。
Xamarin在Android设备上启动CLR项目的机制是什么?
发布于 2017-03-13 02:26:05
Xamarin在Android设备上启动CLR项目的机制是什么?
您可以参考应用启动。
当应用程序在Android设备中启动时,Android将通过指定的@android:name加载到清单中,然后通常通过调用ContentProvider.attachinfo()
方法来实例化所有类型,然后在构建过程中在这里添加一个mono.MonoRuntimeProvider ContentProvider
。然后,mono.MonoRuntimeProvider.attachInfo()
方法将替换本机ContentProvider.attachinfo()
方法,将Mono运行时加载到进程中。
这就是我对这份文件的理解,如果有任何错误,请告诉我,非常感谢。
https://stackoverflow.com/questions/42735881
复制相似问题