Объединение компонентов Сервисов Google Play и NuGetUnifying Google Play Services Components and NuGet

ЖурналHistory

Использовалось несколько Сервисы Google Play компонентов и пакетов NuGet:There used to be several Google Play Services Components and NuGet packages:

  • Сервисы Google Play (Фройо)Google Play Services (Froyo)
  • Сервисы Google Play (Gingerbread)Google Play Services (Gingerbread)
  • Сервисы Google Play (ICS)Google Play Services (ICS)
  • Сервисы Google Play (Желлибеан)Google Play Services (JellyBean)
  • Сервисы Google Play (KitKat)Google Play Services (KitKat)

Google фактически поставляется только с двумя JAR-файлами для Сервисы Google Play:Google actually only ships two .jar files for Google Play Services:

  • google-play-services-froyo.jar
  • google-play-services.jar

Несоответствие существовало из-за того, что наши aapt.exe средства не были должным образом сообщать, какой уровень API ресурсов был использован для данного приложения.The discrepancy existed because our tooling didn't properly tell aapt.exe what the maximum resource API Level was to be used for a given app. Это означало, что при попытке использовать привязку Сервисы Google Play (KitKat) на более низком уровне API, например Gingerbread, были получены ошибки компиляции.This meant, we received compile errors if we tried using the Google Play Services (KitKat) binding on a lower API level like Gingerbread.

Объединение Сервисы Google PlayUnifying Google Play Services

В более последних версиях Xamarin. Android теперь мы говорим aapt.exe , какую версию ресурсов следует использовать, поэтому эта проблема исчезает.In more recent versions of Xamarin.Android, we now tell aapt.exe what maximum resource version to use, so this problem goes away for us.

Это означает, что нет никакой реальной причины для создания отдельных пакетов для Gingerbread/ICS/Желлибеан/KitKat (Однако нам по-прежнему требуется отдельная привязка для Фройо, так как это совершенно другой JAR-файл).This means, there's no real reason to have separate packages for Gingerbread/ICS/JellyBean/KitKat (however we do still need a separate binding for Froyo since it's a different .jar file altogether).

Чтобы упростить работу с разработчиками, мы теперь объединены компоненты и пакеты NuGet в два:To make things easier for developers, we've now unified our Components and NuGet packages into two:

  • Сервисы Google Play (Фройо) (привязки google-play-services-froyo.jar)Google Play Services (Froyo) (Binds google-play-services-froyo.jar)
  • Сервисы Google Play (привязки google-play-services.jar)Google Play Services (Binds google-play-services.jar)

Какой из них следует использовать?Which one should be used?

Почти во всех случаях следует использовать Сервисы Google Play.In almost every case, Google Play Services should be used. Единственная причина использования пакета (Фройо) — только в том случае, если вы активно нацеливание на Фройо.The only reason to use the (Froyo) package is if you are actively targeting Froyo. Единственная причина, по которой существует отдельный JAR-файл из Google, заключается в том, что Фройо находится на небольшом проценте устройств, они сами решили приостановки поддержки, поэтому этот JAR-файл является замороженным, неподдерживаемым моментальным снимком Сервисы Google Play.The only reason this separate .jar file exists from Google is since Froyo is on such a small percentage of devices, they themselves have decided to stop supporting it, so this .jar file is a frozen, unsupported snapshot of Google Play Services.

Примечание о GingerbreadNote about Gingerbread

Gingerbread не поддерживает поддержку фрагментов по умолчанию, поэтому некоторые классы в привязке не будут использоваться в приложении во время выполнения на устройстве Gingerbread.Gingerbread does not have Fragment support by default, and because of this, some of the classes in the binding will not be usable in an app at runtime on a Gingerbread device. Такие классы MapFragment , как, не будут работать в Gingerbread, вместо них SupportMapFragmentследует использовать вариант поддержки.Classes like MapFragment will not work on Gingerbread, and their Support variant should be used instead SupportMapFragment. Разработчику необходимо понять, какой из них использовать.It's up to the developer to know which to use. Эта несовместимость отмечена Google в своей Сервисы Google Play документации.This incompatibility is noted by Google in their Google Play Services documentation.

Что происходит со старыми компонентами или NuGet?What happens to the old Components/NuGet's?

Так как они больше не нужны, мы отключили или Вычислите следующие компоненты и NuGet:Since they are no longer needed, we have Disabled/Delisted the following Components/NuGets:

  • Сервисы Google Play (Gingerbread)Google Play Services (Gingerbread)
  • Сервисы Google Play (Желлибеан)Google Play Services (JellyBean)
  • Сервисы Google Play (KitKat)Google Play Services (KitKat)

Существующий компонент сервисы Google Play (ICS) или NuGet был переименован в сервисы Google Play и будет поддерживаться в актуальном состоянии.The existing Google Play Services (ICS) Component/Nuget has been renamed to Google Play Services and will be kept up to date going forward. Все проекты, ссылающиеся на один из отключенных или разделенных пакетов, должны быть обновлены для использования этой версии.All projects referencing one of the Disabled/Delisted packages should be updated to use this one.

Отключенные компоненты по-прежнему существуют и должны быть restorable для проектов, на которые они по-прежнему ссылаются, чтобы избежать их нарушения.The disabled Components still exist and should be restorable for projects they are still referenced in, to avoid breaking them. Аналогичным образом, перечисленные пакеты NuGet по-прежнему существуют и могут быть восстановлены.Similarly the delisted NuGet packages still exist and can be restored. Они не будут обновлены в дальнейшем.They will not be updated going forward.