Android Mono版或支持包版

时间:2018-04-27 02:12:53

标签: xamarin xamarin.android

假设我想确保所有Android 7.0设备都可以运行我的应用。

安装NuGet包时,我应该注意哪个版本?

Android Mono版本或支持包的版本?

我应该选择A还是B?顺便说一下,Android 7.0和Android Mono 7.0是一样的,还是不是?

A or B?

1 个答案:

答案 0 :(得分:1)

首先,MonoAndroid V7.0和Android V7.0并不是一回事。

Mono Android是基于C#语言和公共语言运行时的开放标准的Microsoft .NET Framework的开源实现,而Android是由Google开发的移动操作系统,基于Linux内核的修改版本和其他开源软件。

回答您的第一个问题支持库实际上以不同的方式工作,然后您了解以确保您的应用程序适用于您需要的所有Android 7.0设备,以确保您拥有Android SDK并且您的compilesdkversion最小化或更高另一方面,现在支持库是为了兼容性,假设您有一个针对V 5.1的应用程序,并且有一个可用于5.1的API但是如果您希望能够在您的设备下面使用它,那么你需要有支持库V21才能更好地理解读到最后。

当你说MonoAndroid版本它基本上向你显示你瞄准Android应用程序的版本时,尽量保持简单明了。这基本上意味着您的目标版本与最大支持无关。

目标框架:

  

目标框架 - 指定在构建应用程序时使用的框架。此API级别在编译时由Xamarin.Android使用。

你想要为你的Android应用程序定位的框架,这实际上是你A,这与它是否会在高于它基本上为你提供的设备上运行无关该Android框架可用的新功能。目标框架(也称为compileSdkVersion)是您的应用程序在构建时编译的特定Android框架版本(API级别)。此设置指定应用程序在运行时期望使用的API,但它不会影响应用程序在安装时实际可用的API。因此,更改目标框架设置不会改变运行时行为。

例如:如果您定位任何低于V6.0的内容,则不需要提供任何运行时权限,或者如果您定位到v8.0,则可以使用自适应图标等等。目标框架确定您的应用程序链接的库版本 - 这决定了您可以在应用程序中使用哪些API。例如,如果要使用Android 5.0 Lollipop中引入的NotificationBuilder.SetCategory方法,则必须将Target Framework设置为API Level 21(Lollipop)或更高版本。如果将项目的目标框架设置为API级别(如API级别19(KitKat))并尝试在代码中调用SetCategory方法,则会出现编译错误。

另请注意:

  

从2018年8月开始,Google Play控制台将要求新的应用程序定位到API级别26(Android 8.0)或更高级别。从2018年11月开始,现有应用将需要针对API级别26或更高级别。有关详细信息,请参阅在未来几年内提高Google Play上的应用安全性和性能。

最低Android版本

  

最低Android版本 - 指定您希望应用支持的最早的Android版本。此API级别在Android运行时使用。

最低Android版本(也称为minSdkVersion)是可以安装和运行应用程序的最旧版本的Android操作系统(即最低的API级别)。默认情况下,应用只能安装在符合Target Framework设置或更高设备的设备上;如果最低Android版本设置低于目标框架设置,您的应用程序也可以在早期版本的Android上运行。例如,如果您将Target Framework设置为Android 7.1(Nougat)并将最低Android版本设置为Android 4.0.3(Ice Cream Sandwich),您的应用程序可以安装在从API级别15到API级别25的任何平台上,包括

例如:虽然您的应用程序可能在此系列平台上成功构建和安装,但这并不能保证它可以在所有这些平台上成功运行。例如,如果您的应用程序安装在Android 5.0(Lollipop)上,并且您的代码调用仅在Android 7.1(Nougat)和更新版本中可用的API,则您的应用程序将收到运行时错误并可能崩溃。因此,您的代码必须确保 - 在运行时 - 它只调用运行它的Android设备支持的那些API。换句话说,您的代码必须包含显式运行时检查,以确保您的应用仅在最近足以支持它们的设备上使用较新的API。

定位Android版

  

目标Android版本 - 指定您的应用程序要在其上运行的Android版本。此API级别在Android运行时使用。

目标Android版本(也称为targetSdkVersion)是应用期望运行的Android设备的API级别。 Android使用此设置来确定是否启用任何兼容性行为 - 这可确保您的应用继续以您期望的方式工作。 Android使用您应用的目标Android版本设置来确定哪些行为更改可以应用到您的应用而不会破坏它(这就是Android提供向前兼容性的方式)。

目标框架和目标Android版本虽然具有非常相似的名称,但却不是一回事。 Target Framework设置将目标API级别信息传递给Xamarin.Android以便在编译时使用,而Target Android版本将目标API级别信息传递给Android以便在运行时使用(当应用程序安装并在设备上运行时)。

通常,目标Android版本应受最低Android版本和目标框架的约束。那就是:

最低Android版本< =目标Android版本< =目标框架

支持图书馆

Android支持库是每个Android应用程序的重要组成部分,您可以在任何地方找到它们。支持库使开发人员能够将Android的最新和最强大的功能添加到他们的应用程序中,同时保持与旧版Android的向后兼容性。随着Android SDK的新版本继续推出,支持库的更新也将继续推出;让它们保持最新并安装正确的版本是Android开发的一个重要(有时令人沮丧)的部分。在这篇博客中,我希望揭开支持库的神秘面纱,并帮助您升级到最新版本

有关支持库的更多理解和参考:https://blog.xamarin.com/mastering-android-support-libraries/