Возможности Nougat

Начните использовать Xamarin.Android для разработки приложений для Android Nougat.

В этой статье представлен обзор возможностей Android Nougat, описывается подготовка к разработке Xamarin.Android для Android Nougat и приводятся ссылки на примеры приложений, иллюстрирующие использование возможностей Android Nougat в приложениях Xamarin.Android.

Обзор

Android Nougat — это следующий выпуск Android 6.0 Marshmallow Google. Xamarin.Android обеспечивает поддержку привязок Android 7.x в Xamarin Android 7.0 и более поздних версиях. В Android Nougat добавлены множество новых API для возможностей Nougat, описанных ниже. Эти API доступны для приложений Xamarin.Android при использовании Xamarin.Android 7.0.

Главный имиджевый баннер с изображением планшета и телефонов с Android Nougat

Дополнительные сведения об API Android 7.x см. в справочнике по API Android. Список известных проблем Xamarin.Android 7.0 можно найти в этих заметках о выпуске.

Android Nougat предоставляет множество новых возможностей, представляющих интерес для разработчиков Xamarin.Android. Эти функции включают перечисленные ниже.

  • Поддержка нескольких окон— это улучшение позволяет пользователям одновременно открывать два приложения на экране.

  • Усовершенствования уведомлений— переработанная система уведомлений в Android Nougat включает функцию прямого ответа , которая позволяет пользователям быстро реагировать на текстовые сообщения непосредственно из пользовательского интерфейса уведомления. Кроме того, если приложение создает уведомления о полученных сообщениях, новая возможность объединенных уведомлений объединяет их в группу при получении нескольких сообщений.

  • Средство сохранения данных — это новая системная служба, которая помогает сократить использование сотовых данных приложениями. Это дает пользователям контроль над тем, как приложения используют сотовые данные.

Кроме того, в Android Nougat введены множество других улучшений, интересных разработчикам приложений, такие как новая возможность настройки безопасности сети, режим Doze on the Go, аттестация ключей, новые API быстрых настроек, поддержка нескольких языковых стандартов, API ICU4J, усовершенствованные веб-представления, доступ к возможностям языка Java 8, доступ к каталогам с заданной областью, API настраиваемого указателя, поддержка платформы виртуальной реальности, виртуальные файлы и оптимизация фоновой обработки.

В этой статье описано, как приступить к сборке приложений для Android Nougat, чтобы испытать новые возможности и спланировать миграцию или работу функций на новой платформе Android Nougat.

Требования

Для использования новых возможностей Android Nougat в приложениях на основе Xamarin требуется следующее:

  • Visual Studio или Visual Studio для Mac. Если вы используете Visual Studio, требуется версия 4.2.0.628 или более поздней версии Инструменты Visual Studio для Xamarin. Если вы используете Visual Studio для Mac, требуется версия 6.1.0 или более поздняя.

  • Xamarin.Android — Xamarin.Android 7.0 или более поздней версии необходимо установить и настроить с помощью Visual Studio или Visual Studio для Mac.

  • Пакет SDK для Android — нужно установить пакет SDK для Android 7.0 (API 24) или более поздней версии через Диспетчер SDK Android.

  • Пакет разработчика Java — разработка Xamarin Android 7.0 требует JDK 8 или более поздней версии, если вы разрабатываете для уровня API 24 или более поздней версии (JDK 8 также поддерживает уровни API выше 24). 64-разрядная версия JDK 8 необходима, если используются пользовательские элементы управления или средство предварительного просмотра Forms.

Внимание

Xamarin.Android не поддерживает пакет JDK 9.

Обратите внимание, что приложения должны быть пересобраны для использования Xamarin C6SR4 или более поздней версии для надежной работы с Android Nougat. Так как Android Nougat может ссылаться только на встроенные библиотеки NDK, существующие приложения, которые используют такие библиотеки, как Mono.Data.Sqlite.dll, могут аварийно завершать свою работу при выполнении в Nougat Android, если они не правильно пересобраны.

Начало работы

Чтобы приступить к разработке приложений для Android Nougat с использованием Xamarin.Android, необходимо скачать и установить последние версии средств и пакетов SDK до создания проекта для Android Nougat:

  1. Установите последние обновления Xamarin.Android из Xamarin.

  2. Установите пакеты и средства Android 7.0 (API 24) или более поздней версии.

  3. Создайте проект Xamarin.Android, предназначенный для Android Nougat.

  4. Настройте эмулятор или устройство для Android Nougat.

В разделах ниже отдельно рассматривается каждый шаг.

Установка обновлений Xamarin

Чтобы добавить поддержку Xamarin для Android Nougat, измените канал обновления в Visual Studio или Visual Studio для Mac на стабильный канал и примените последние обновления. Если вам также нужны возможности, доступные только в канале альфа- или бета-версии, можно переключиться на соответствующий канал (обе версии также обеспечивают поддержку Android 7.x). Сведения о том, как изменить канал обновлений (выпусков), см. в разделе Изменение канала обновлений.

Установка пакета SDK для Android

Чтобы создать проект с использованием Xamarin.Android 7.0, необходимо сначала открыть Диспетчер SDK Android, чтобы установить платформу SDK для Android N (API уровня 24) или более поздней версии. Необходимо также установить последнюю версию Android SDK Tools:

  1. Запустите диспетчер пакетов SDK Для Android (в Visual Studio для Mac используйте диспетчер SDK Для Open Android...; в Visual Studio используйте >диспетчер sdk Android Для Android>.>

  2. Установите Android 7.0 (API 24) или более поздней версии:

    Выбор пакетов Android 7.0 в Диспетчере SDK Android

  3. Установите последние средства пакета SDK для Android:

    Выбор последних инструментов пакета SDK для Android в Диспетчере SDK Android

    Вам необходимо установить Android SDK Tools редакции 25.2.2 или более поздней, инструменты платформы SDK для Android 24.0.3 или более поздней версии и инструменты сборки SDK для Android 24.0.2 или более поздней версии.

  4. Убедитесь, что для параметра Расположение пакета Java Development Kit настроен JDK 1.8:

    Настройка пути к JDK 8 в разделе параметров инструментов

    Чтобы просмотреть этот параметр в Visual Studio, щелкните "Параметры > инструментов>" Xamarin > Android Параметры. В Visual Studio для Mac щелкните "Параметры > проектов>" расположений > Android.

Запуск проекта Xamarin.Android

Создание проекта Xamarin.Android Если вы не знакомы с разработкой приложений для Android с использованием Xamarin, ознакомьтесь с этой статьей, чтобы узнать о создании проектов Xamarin.Android.

При создании проекта Android необходимо настроить параметры версии для целевой версии Android 7.0 или более поздней. Например, чтобы создать проект для Android 7.0, необходимо настроить целевой уровень API Android проекта, задав Android 7.0 (API 24 — Nougat). Рекомендуем задать целевой уровень платформы API 24 или выше. Дополнительные сведения о настройке уровней API Android см. в этой статье.

Примечание.

Сейчас необходимо установить самую раннюю версию Android — Android 7.0 (API 24 — Nougat) для развертывания приложения на устройствах или эмуляторах Android Nougat.

Настройка эмулятора или устройства

Если вы используете эмулятор, запустите AVD Manager (диспетчер виртуальных устройств Android) и создайте устройство, используя следующие параметры:

  • Устройство: Nexus 5X, Nexus 6, Nexus 6P, Nexus Player, Nexus 9 или Pixel C
  • Целевая ОС: Android 7.0 с API уровня 24
  • ABI: x86 или x86_64

Например, это виртуальное устройство настроено для эмуляции Nexus 6:

Настройка в AVD устройства Nexus 6, целевой ОС Android 7.0 и ЦП или ABI Intel Atom x86

При использовании физического устройства, такого как Nexus 5X, 6 или 9, можно либо обновить устройство с помощью автоматического обновления по беспроводной связи (OTA), либо скачать образ системы и напрямую установить его на устройство. Дополнительные сведения обновлении устройства до Android Nougat вручную см. в статье Полные образы OTA для устройств Nexus и Pixel.

Обратите внимание, что устройства Nexus 5 не поддерживаются в Android Nougat.

Новые возможности

Android Nougat представляет множество новых функций и возможностей, таких как поддержка нескольких окон, усовершенствованные уведомления и экономия данных. В следующих разделах описаны эти функции и приведены ссылки, которые помогут приступить к их использованию в приложении.

Многооконный режим

Многооконный режим позволяет пользователям одновременно открывать два приложения с полной поддержкой многозадачности. Эти приложения могут работать параллельно (в альбомной ориентации) или одно над другим (в книжной ориентации) в режиме разделения экрана. Пользователи могут перетаскивать разделитель приложений, чтобы изменять их размер, а также могут вырезать и вставлять содержимое из приложения в приложение. Когда два приложения представлены в многооконном режиме, выбранное действие продолжает выполняться, а отмененное действие приостанавливается, но остается видимым. Многооконный режим не изменяет жизненный цикл действия Android.

Примеры приложений, запущенных в многооконном режиме в книжной и альбомной ориентации

Вы можете настроить то, как действия приложения Xamarin.Android будут поддерживать многооконный режим. Например, можно настроить атрибуты, устанавливающие минимальный размер, высоту и ширину окна приложения по умолчанию в многооконном режиме. Вы можете использовать новое свойство Activity.IsInMultiWindowMode, чтобы определить, применяется ли ваше действие в многооконном режиме. Например:

if (!IsInMultiWindowMode) {
    multiDisabledMessage.Visibility = ViewStates.Visible;
} else {
    multiDisabledMessage.Visibility = ViewStates.Gone;
}

Дополнительные сведения о многооконном режиме см. в разделе о поддержке этого режима.

Улучшенные уведомления

В Android Nougat представлена усовершенствованная система уведомлений. В ней реализована новая возможность прямого ответа, позволяющая пользователям быстро отвечать через уведомления на входящие текстовые сообщения напрямую в пользовательском интерфейсе уведомления. Начиная с Android 7.0, уведомления можно объединять в группу при получении нескольких сообщений. Кроме того, разработчики могут настраивать представления уведомлений, оформления системы и новые шаблоны уведомлений, используемые при создании уведомлений.

Прямой ответ

Когда пользователь получает уведомление о входящем сообщении, в Android Nougat можно ответить на сообщение через уведомление (вместо того, чтобы открывать приложение для обмена сообщениями и отправлять ответ). Эта функция встроенного ответа позволяет пользователям быстро отвечать на SMS или текстовые сообщения напрямую в интерфейсе уведомления:

Снимок экрана уведомления с полем встроенного прямого ответа

Чтобы обеспечить поддержку этой возможности в приложении, необходимо добавить действия встроенного ответа в приложение с помощью объекта RemoteInput, чтобы пользователи могли ответить текстом прямо в интерфейсе уведомления. Например, следующий код создает RemoteInput для получения входного текста, создает намерение ожидания действия ответа и действие с поддержкой удаленного ввода:

// Build a RemoteInput for receiving text input:
var remoteInput = new Android.Support.V4.App.RemoteInput.Builder (EXTRA_REMOTE_REPLY)
    .SetLabel (GetString (Resource.String.reply))
    .Build ();

// Build a Pending Intent for the reply action to trigger:
PendingIntent replyIntent = PendingIntent.GetBroadcast (ApplicationContext,
                                conversation.ConversationId,
                                GetMessageReplyIntent (conversation.ConversationId),
                                PendingIntentFlags.UpdateCurrent);

// Build an Android 7.0 compatible Remote Input enabled action:
NotificationCompat.Action actionReplyByRemoteInput = new NotificationCompat.Action.Builder (
    Resource.Drawable.notification_icon,
    GetString (Resource.String.reply),
    replyIntent).AddRemoteInput (remoteInput).Build ();

Это действие добавляется к уведомлению:

// Create the notification:
NotificationCompat.Builder builder = new NotificationCompat.Builder (ApplicationContext)
   .SetSmallIcon (Resource.Drawable.notification_icon)
   ...
   .AddAction (actionReplyByRemoteInput);

Дополнительные сведения о добавлении действий встроенного ответа в приложение для Android 7.0 или более поздней версии см. в статье Обзор уведомлений.

Объединенные уведомления

Android Nougat может группировать уведомления (например, по теме сообщений) и показывать группу, а не каждое отдельное сообщение. Эта функция объединенных уведомлений позволяет пользователям закрывать или архивировать группу уведомлений одним действием. Пользователь может потянуть содержимое вниз, чтобы открыть пакет уведомлений и подробно просмотреть каждое из них:

Снимок экрана с примеров объединенных уведомлений

Для поддержки пакетов уведомлений приложение может использовать метод Builder.SetGroup, чтобы объединять аналогичные уведомления. Дополнительные сведения о пакетных группах уведомлений в Android N см. в разделе Обновления и группы уведомлений.

Настраиваемые представления

Android Nougat позволяет создавать пользовательские представления уведомлений с использованием заголовков системных уведомлений, действий и развертываемых макетов. Дополнительные сведения о пользовательских представлениях уведомлений в Android Nougat см. в разделе Новые возможности уведомлений.

Экономия данных

Начиная с Android Nougat, пользователи могут включить новый параметр экономии данных, который блокирует фоновое использование данных. Этот параметр также сигнализирует приложению использовать меньше данных на переднем плане, когда это возможно. В Android Nougat добавлен ConnectivityManager, чтобы приложение могло проверить, включил ли пользователь экономию данных, и ограничить использование данных, если включена функция экономии.

Дополнительные сведения о новой функции экономии данных в Android Nougat см. в разделе Оптимизация использования сетевых данных.

Сочетания клавиш приложения

В Android 7.1 появилась возможность сочетаний клавиш приложения, позволяющая пользователям быстро запускать обычные или рекомендуемые задачи с приложением. Чтобы активировать меню сочетаний клавиш, пользователь нажимает значок приложения на секунду или более — меню отображается с быстрой вибрацией. Если перестать нажимать, меню остается открытым:

Пример экрана контекстного меню приложения для обмена сообщениями

Эта возможность доступна только в API уровня 25. Дополнительные сведения о новой возможности сочетаний клавиш приложений в Android 7.1 см. в разделе Типы сочетаний клавиш.

Итоги

Из этой статьи вы узнали об Android Nougat, установке и настройке последних средств и пакетов для разработки приложений Xamarin.Android для Android Nougat. В нем также предоставлен обзор основных возможностей, доступных в Android Nougat, со ссылками на примеры исходного кода, которые помогут вам приступить к созданию приложений для Android Nougat.