做⼀个⾼德地图的 iOS / Android MAUI 控件(下)

发布时间:2023-10-18 09:00

我们已经介绍了如何通过 .NET 绑定 iOS 原⽣库 ,本篇开始介绍⼀下如何通过 .NET 绑定 Android 原⽣库。

Android 的库

Android 的库以 .jar 做打包, 通过⼯具你可以将多个 .jar 完成绑定,然后通过 C# 调⽤原⽣的 Java 库。对⽐起 iOS , Android 的库绑定简单很多。 
做⼀个⾼德地图的 iOS / Android MAUI 控件(下)_第1张图片

从上图可以看到 Xamarin.Android / .NET for Android 通过使⽤托管可调⽤包装器 (MCW) 实现绑定。MCW 是⼀个 JNI 桥,在托管代码需要调⽤ Java 代码时会使⽤它。托管可调⽤包装器还⽀持对 Java 类型进⾏⼦类 化以及覆盖 Java 类型的虚拟⽅法。同样,每当 Android 运⾏时 (ART) 代码需要调⽤托管代码时,它都会通 过另⼀个称为 Android 可调⽤包装器 (ACW) 的 JNI 桥来实现。

创建⼀个 Android 原⽣库绑定项⽬

通过命令⾏创建⼀个 Android 原⽣库绑定项⽬d

otnet new android-bindinglib -o Droid.AMap

进⼊该项⽬我们看看⽂件结构

做⼀个⾼德地图的 iOS / Android MAUI 控件(下)_第2张图片

项⽬⾥⾯有 Transforms ⽂件夹有对应的三个 xml ⽂件,分别是 EnumFields.xml ,EnumMethods.xml , Metadata.xml , 各⾃作⽤如下 :

  • MetaData.xml – 允许对最终 API 进⾏更改,例如更改⽣成的绑定的命名空间。 
  • EnumFields.xml – 包含 Java int 常量与 C# enums 之间的映射。
  • EnumMethods.xml – 允许将⽅法参数和返回类型从 Java int 常量更改为 C# enums 

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号