在 Xamarin 中为我的 SDK 添加库依赖项
Add library dependency for my SDK in Xamarin
我有用 Java 编写的 SDK(.jar 文件)。我根据该描述创建了一个 Android Java Bindings Library。我使用从 jar 生成的 JNI 文件为我的 Xamarin 插件编写 API。我没有使用 Xamarin 的经验,所以我想问你这些问题:
- 我的 SDK.jar 文件依赖于 Google 播放 Services.jar 文件。我必须如何以及在哪里添加它?我想让插件自动将 Google Play Services 添加到安装插件的项目中。喜欢Google Play Services 插件在添加时添加支持库。
- 有人可以向我解释一下组件和包之间的区别吗?我有这些文件夹,但我不知道我必须在哪个文件夹中添加 Google Play 服务插件,有什么区别。
- 如何从我的 API 文件中获取当前的 activity?我不使用 Xamarin.Forms。我应该吗?
提前致谢
以下是我的 2 个问题的答案:
in component.yaml 发布插件前的文件:http://developer.xamarin.com/guides/cross-platform/advanced/submitting_components/components_and_nuget/
还没有答案...
如果您不将其作为参数发送,则无法从 API 文件中获取它,但是您的 API 与 iOS API。因此,我将插件分开:一个用于 Android,另一个用于 iOS。
澄清:
2 的答案:
组件是 Xamarin 组件,其中包主要是 nuget 包。用户不会被迫在 Xamarin 组件商店上发布组件,但很多人会这样做。有些不是,因为 Xamarin 组件必须有随附的示例、文档和屏幕截图,因此对于大量用户来说,实现组件的努力是巨大的。这就是许多作者只是在 nuget 上发布他们的 SDK 的原因。
Xamarin 组件在发布前由 Xamarin 组件团队进行测试,原因主要是正确性和质量(类似于 Apple 的应用程序提交过程)。这应该可以帮助用户获得显示 SDK/component 工作原理的 minimal/starter 样本和一些文档。
一些作者分步骤发布他们的组件:首先是 nuget,当示例和文档准备就绪时,然后是引用第一步中提到的 nuget 依赖项的 Xamarin 组件。这称为 empty-shell(或只是 shell 组件)。用户可以将其作为 nuget 或组件安装到某些应用程序或库中。
包 (nuget) 是通过 Visual Studio 或 Xamarin studio 中的 Nuget 包管理器安装的。当组件添加到您的项目时。示例和文档可以在解决方案根目录的 Components/ 文件夹中找到。
插件是一种特殊形式的组件,主要用于跨平台 Xamarin.Forms(但不仅限于)应用程序,它们利用称为 bait-and-switch 的特殊技术来加载平台特定的 dll(来自 nugets)。
Google Play Services (GPS) 不是插件,因为它们只是 Android,所以不需要插件(ios 和 Windows 部分)。我认为 iOS 上只有游戏服务,但不确定。
GPS 有两种形式,作为 nuget 包和组件(空 shell)。
我有用 Java 编写的 SDK(.jar 文件)。我根据该描述创建了一个 Android Java Bindings Library。我使用从 jar 生成的 JNI 文件为我的 Xamarin 插件编写 API。我没有使用 Xamarin 的经验,所以我想问你这些问题:
- 我的 SDK.jar 文件依赖于 Google 播放 Services.jar 文件。我必须如何以及在哪里添加它?我想让插件自动将 Google Play Services 添加到安装插件的项目中。喜欢Google Play Services 插件在添加时添加支持库。
- 有人可以向我解释一下组件和包之间的区别吗?我有这些文件夹,但我不知道我必须在哪个文件夹中添加 Google Play 服务插件,有什么区别。
- 如何从我的 API 文件中获取当前的 activity?我不使用 Xamarin.Forms。我应该吗?
提前致谢
以下是我的 2 个问题的答案:
in component.yaml 发布插件前的文件:http://developer.xamarin.com/guides/cross-platform/advanced/submitting_components/components_and_nuget/
还没有答案...
如果您不将其作为参数发送,则无法从 API 文件中获取它,但是您的 API 与 iOS API。因此,我将插件分开:一个用于 Android,另一个用于 iOS。
澄清:
2 的答案:
组件是 Xamarin 组件,其中包主要是 nuget 包。用户不会被迫在 Xamarin 组件商店上发布组件,但很多人会这样做。有些不是,因为 Xamarin 组件必须有随附的示例、文档和屏幕截图,因此对于大量用户来说,实现组件的努力是巨大的。这就是许多作者只是在 nuget 上发布他们的 SDK 的原因。
Xamarin 组件在发布前由 Xamarin 组件团队进行测试,原因主要是正确性和质量(类似于 Apple 的应用程序提交过程)。这应该可以帮助用户获得显示 SDK/component 工作原理的 minimal/starter 样本和一些文档。
一些作者分步骤发布他们的组件:首先是 nuget,当示例和文档准备就绪时,然后是引用第一步中提到的 nuget 依赖项的 Xamarin 组件。这称为 empty-shell(或只是 shell 组件)。用户可以将其作为 nuget 或组件安装到某些应用程序或库中。
包 (nuget) 是通过 Visual Studio 或 Xamarin studio 中的 Nuget 包管理器安装的。当组件添加到您的项目时。示例和文档可以在解决方案根目录的 Components/ 文件夹中找到。
插件是一种特殊形式的组件,主要用于跨平台 Xamarin.Forms(但不仅限于)应用程序,它们利用称为 bait-and-switch 的特殊技术来加载平台特定的 dll(来自 nugets)。
Google Play Services (GPS) 不是插件,因为它们只是 Android,所以不需要插件(ios 和 Windows 部分)。我认为 iOS 上只有游戏服务,但不确定。 GPS 有两种形式,作为 nuget 包和组件(空 shell)。