Объединение компонентов Сервисов 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 (Froyo)Google Play Services (Froyo)
  • Сервисы Google Play (Gingerbread)Google Play Services (Gingerbread)
  • Сервисы Google Play (ICS)Google Play Services (ICS)
  • Сервисы Google Play (JellyBean)Google Play Services (JellyBean)
  • Сервисы Google Play (KitKat)Google Play Services (KitKat)

Фактически только поставляется два .jar Google файлы службы 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/JellyBean/KitKat (тем не менее мы по-прежнему нужна отдельные привязки для Froyo так как это разные 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 (Froyo) (привязывает 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. Единственная причина для использования пакета (Froyo) — Если вы активно используете Froyo.The only reason to use the (Froyo) package is if you are actively targeting Froyo. Единственная причина, что существует этот отдельный JAR-файл из Google — поскольку Froyo на такой небольшой процент устройств, сами по себе решили прекращена поддержка, поэтому этот 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?

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

  • Сервисы Google Play (Gingerbread)Google Play Services (Gingerbread)
  • Сервисы Google Play (JellyBean)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. Использовать эту следует обновить все проекты, ссылки на один из пакетов отключено/Delisted.All projects referencing one of the Disabled/Delisted packages should be updated to use this one.

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