根据.NET implementation support page:
.NetStandard
1.x仅支持Xamarin.Android
7及以上
.NetStandard
2仅支持Xamarin.Android
8及以上
假设我无法支持Android 5.1+,那么我已经避免将我的pcl升级到.netstandard。
然而,在最近的测试中,我已将整个Android应用程序(即Xamarin.Forms PCL
)转换为.NetStandard 2 class library
,并且它在每个平台上都可以完美运行(在Android 5.1+以上的模拟器和物理设备中)。
至少可以说这令人困惑。是否有些东西可能会破坏,或者某些功能可能无法正常工作,或者我会遇到一些我不知道的兼容性问题?或者我不正确理解.NET实现支持页面和相关概念?
You can read in-depth explanation on Xamarin official webpage:
随着Android平台的发展和新的Android版本的发布,每个Android版本都会分配一个唯一的整数标识符,称为API级别。因此,每个Android版本对应一个Android API级别。由于用户在较旧版本和最新版本的Android上安装应用程序,因此必须将真实Android应用程序设计为使用多个Android API级别。
Android的每个版本都有多个名称:
- Android版本,例如Android 7.1
- 代码名称,例如Nougat A.
- 相应的API级别,例如API级别25
Android代码名称可能对应于多个版本和API级别(如下面的列表所示),但每个Android版本仅对应一个API级别。
此外,Xamarin.Android还定义了映射到当前已知Android API级别的构建版本代码。以下列表可以帮助您在API级别,Android版本,代码名称和Xamarin.Android构建版本代码之间进行转换。
API 26(Android 8.0) - Oreo,2017年8月发布。
API 25(Android 7.1) - Nougat,2016年12月发布。
.....