Xamarin iOS和Android如何运作?

Tim*_*ert 29 mono android ios xamarin

我试着理解Xamarin.iOS(MonoTouch)和Xamarin.Android(Android的Mono)是如何工作的.我写了一个小应用程序并查看了.app和.apk文件.

.app文件(iOS)内部有许多.dll文件.但为什么?在我阅读的每一页和帖子上,他们都说:App是原生的,没有任何解释.有人可以向我解释一下xamarin开发人员对"原生"的意思吗?

.apk文件内部不是单个.dll文件..

Lex*_* Li 10

Xamarin对"native"的定义包括但不限于:

  • 每行C#代码都编译为机器代码,然后打包在.app中.在运行时没有JIT,因为它被AOT抑制.更多信息可以在

http://www.mono-project.com/AOT

(注意Xamarin.Android仍然使用JIT,http://xamarin.com/how-it-works )

  • 对平台本机类型/ API的访问是完全开放的,因此您不仅限于一小组API调用(如果您使用HTML5/JavaScript,您知道有哪些限制).

  • 您设计的用户界面绑定到iOS(CocoaTouch)或Android(Skia)公开的本机API.没有中间层来伤害性能或外观和感觉.

至于什么是.ipa或.apk,谁在乎呢?当然@Jason的评论向我们展示了一些内部实现细节.


fun*_*unk 1

Xamarin 编译器捆绑 .NET 运行时并输出本机(二进制)ARM 可执行文件,打包为 iOS 或 Android 应用程序。