Android 7.0 для разработчиков: новые функции, повышение производительности и другие вещи, которые вам не нужны

Опубликовано: 2022-03-11

Google официально анонсировала Android 7.0 Nougat несколько недель назад, но, как обычно, вам придется подождать. Большинство пользователей не получат обновления по беспроводной сети (OTA) до начала следующего года. Многие другие получат их через неделю из никогда, так как некоторые производители устройств просто не заморачиваются.

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

Однако разработчикам не следует возлагать большие надежды; здесь нет никаких изменений игры. Давайте рассмотрим основные настройки Android и новые возможности, которые они открывают, от наиболее эффективных до наименее эффективных.

  1. Новый JIT-компилятор, дополняющий существующий AOT-компилятор ART.
  2. Поддержка нескольких окон
  3. Поддержка Вулкан API
  4. Прямая загрузка
  5. Прямой ответ и пакетные уведомления
  6. Режим виртуальной реальности Daydream (VR)
  7. Пользовательский интерфейс, настройки специальных возможностей и оптимизация фона

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

1. Новый JIT-компилятор, компиляция с учетом профиля

JIT-компиляция возвращается, и хотя это может звучать как возврат к временам Dalvik, это не так. На этот раз Google добавила JIT-компилятор с профилированием кода в ART, чтобы дополнить существующий AOT-компилятор ART. Компиляция по профилю — модное слово дня.

Большое преимущество для пользователя: большие приложения, установка которых раньше занимала минуты, теперь занимают секунды.

ART создает профиль для горячих методов каждого приложения и различных состояний устройства. Он может прекомпилировать горячие методы для обеспечения оптимальной производительности, сокращения использования оперативной памяти, снижения энергопотребления и т. д.

Компилятор JIT и AOT в Android 7.0

Android 7.0: новые функции, повышение производительности и другие вещи, которые вам не нужны.
Твитнуть

Дополнительным преимуществом является высокая скорость установки и обновления. Поскольку профилирование означает отсутствие шага оптимизации, Google даже утверждает, что большие приложения, установка которых в Android 6.0 занимала минуты, теперь могут быть установлены или обновлены за считанные секунды. Лично я надеюсь, что это относится и к World of Tanks Blitz, потому что это единственная игра для Android, которая стоит моего времени.

За последние пару лет в области мобильных хранилищ был достигнут значительный прогресс. Многие устройства текущего поколения используют быстрое хранилище UFS 2.0, которое обеспечивает значительный прирост производительности по сравнению с хранилищем eMMC прошлых лет. Android 7.0 должен позволить разработчикам программного обеспечения в полной мере использовать этот новый стандарт хранения и открыть еще большую производительность.

Прочтите один из моих предыдущих постов в блоге, чтобы более подробно узнать, что планы Google в отношении компиляторов означают для разработчиков Android.

Влияние разработчиков. Компиляция на основе профилей должна обеспечить превосходную производительность и эффективность. Установка и обновление будут выполняться намного быстрее, а благодаря обширной документации Google внедрение должно быть относительно простым. Меньше ждать всех. Это хорошая вещь.

2. Многооконная поддержка

Подождите секунду — разве мы уже не видели многооконные функции на Android? И да и нет; некоторые форки предлагали многооконную поддержку, но теперь она стала родной. Существует две реализации разделения экрана: «бок о бок» и « один над другим ». Это более-менее стандартно для мобильных устройств, но, к сожалению, у меня пока не было возможности попробовать.

Многооконная поддержка Android 7.0

И, если честно, я никогда не был поклонником многооконного функционала на мобильных устройствах, потому что большинству пользователей он просто не нужен.

Однако дело не только в смартфонах. Google также тихо работает над предложениями Smart TV, поэтому поддержка многооконности будет распространяться и на эти устройства, но с изюминкой. Благодаря большему экранному пространству разработчики приложений смогут использовать режим «картинка в картинке » на телевизорах, а некоторые функции будут зависеть от поставщика. Поставщики смогут решать, включать режим произвольной формы или нет. Это означает, что производители негабаритных фаблетов, планшетов и других устройств с большими дисплеями могут разрешить пользователям экспериментировать с размером и положением окна, что похоже на подход Microsoft, впервые реализованный в Windows 8.x.

Влияние разработчиков: поддержка многооконного режима не меняет правила игры, но она немедленно предоставит возможность на планшетах Android и смарт-телевизорах, причем последние также получат функцию «картинка в картинке» и возможность записи видео. Эта проблема? Телевизоры Android не очень распространены, а планшеты Android никогда не были очень популярны, особенно когда речь идет о приложениях для повышения производительности, которые больше всего выиграют от поддержки нескольких окон.

А кто знает? Может быть, очень умный разработчик создаст потрясающее приложение для смартфонов, которое воспользуется этим преимуществом. Я не буду задерживать дыхание.

3. Вулкан API

Это еще одно потенциально мощное обновление под капотом. Конечно, он не вызовет такого интереса со стороны прессы и потребителей, как более бесполезные функции, но не заблуждайтесь: Vulkan API — это большое дело.

Если вы пропустили это, Vulkan API — это новый API с низкими накладными расходами, близкий к металлу для графических процессоров (GPU). И не только для 3D-игр, но и для вычислений на GPU. По сути, это продолжение OpenGL, обеспечивающее превосходную производительность на многопоточных процессорах наряду с межплатформенной совместимостью. Это также должно сэкономить тысячи человеко-часов на разработку драйверов.

Так почему же не становится больше шумихи? Что ж, это новый стандарт, и внедрение совершенно нового графического API обычно занимает пару лет. Вот почему потребителей это не волнует, а разработчиков Android это должно волновать .

А теперь подождем… Возможно, сейчас поддержка Vulkan API не кажется важной, но через пару лет она будет огромной.

Чтобы узнать больше о реализации Vulkan в Android 7.0, прочитайте полный обзор Vulkan API, который я написал ранее в этом году, или ознакомьтесь с ресурсами Google для разработчиков.

Влияние разработчиков: время Vulkan API придет. Это снизит нагрузку на ЦП, тем самым повысив производительность графического процессора и снизив энергопотребление в 3D-играх. Однако внедрение неизбежно будет медленным, потому что мы говорим о чрезвычайно мощном и сложном графическом API, а не просто о косметической настройке.

4. Прямая загрузка

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

Чтобы сделать это возможным, в Android 7.0 предусмотрено два места хранения данных с двумя разными решениями для шифрования:

  • Зашифрованное хранилище устройства доступно при прямой загрузке и может быть доступно независимо от того, заблокировано устройство или разблокировано.
  • Зашифрованное хранилище учетных данных по-прежнему используется по умолчанию и становится доступным только после того, как пользователь разблокирует устройство.

Большинство последствий очевидны: приложения, которые должны работать в режиме прямой загрузки до разблокировки устройства, должны быть включены для этого. По умолчанию приложения не могут запускаться в режиме прямой загрузки , но разработчики могут зарегистрировать различные компоненты приложений, которые необходимо запускать в этом состоянии.

Это должно включать приложения, которые доставляют важные или запланированные уведомления, такие как приложения для обмена сообщениями и календаря. Приложения, которым требуется доступ к хранилищу, должны полагаться на зашифрованное хранилище устройства , которое защищено ключом, который становится доступным после того, как устройство выполняет проверенную загрузку. Доступ не распространяется на данные, связанные с учетными данными пользователя, а именно на PIN-коды и пароли. Зашифрованное хранилище учетных данных недоступно до тех пор, пока устройство не загрузится и не будет разблокировано пользователем, но после доступа к нему оно остается доступным до тех пор, пока устройство не будет выключено.

Влияние разработчиков. Предполагается, что прямая загрузка повышает безопасность без ущерба для взаимодействия с пользователем и скорости отклика. Реализация должна быть простой, но в некоторых случаях она потребует довольно утомительной работы. Тем не менее, это звучит как небольшой компромисс для дополнительной безопасности.

5. Прямой ответ и пакетные уведомления

Похоже, что это связано с прямой загрузкой , но прямой ответ — это другой зверь, позволяющий пользователям отвечать на сообщения и уведомления с экрана уведомлений. Действие встроенного ответа доступно с помощью новой кнопки в уведомлении. На практике пользователи должны иметь возможность отвечать на уведомления без доступа к приложениям, а система позаботится обо всем остальном.

Система может творить чудеса только в том случае, если разработчики не торопятся включать встроенный поиск ответа, вызывая getResultsFromIntent() , который возвращает пакет с требуемым текстовым ответом. В Android 7.0 Google предоставляет разработчикам новый метод представления уведомлений в очереди: пакетные уведомления . Решение похоже на стек уведомлений на Android Wear.

Связанные уведомления — это просто: похожие сообщения, представленные в одной группе, с четкой иерархией и с родительским уведомлением наверху. Затем пользователи могут расширить пакет, чтобы получить доступ к дополнительной информации и предпринять соответствующие действия, или легко закрыть все, если они не заинтересованы.

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

Начиная с Android 7.0 (уровень API 24) пользователи могут напрямую отвечать на текстовые сообщения или обновлять списки задач в диалоговом окне уведомлений. На портативном устройстве встроенное действие ответа отображается как дополнительная кнопка, отображаемая в уведомлении. Когда пользователь отвечает с помощью клавиатуры, система прикрепляет текстовый ответ к указанному вами намерению (для действия уведомления) и отправляет его в ваше портативное приложение.

Влияние разработчиков: прямой ответ и пакетные уведомления должны улучшить взаимодействие с пользователем в ряде сценариев. И, судя по документации Google, реализовать их тоже не должно быть сложно. Очевидно, что электронная почта, обмен сообщениями и социальные приложения выиграют от встроенного ответа, хотя этот подход можно реализовать и в другом месте.

6. Виртуальная реальность мечты

Недавнее внимание Google к виртуальной реальности доказывает, что поисковый гигант не застрахован от ажиотажа. Мы все помним Google Cardboard и Google Glass, которые были злополучной трещиной в пространстве дополненной реальности.

В отличие от Glass, Cardboard не просто зачах и умер, но остается скорее экспериментом, чем реальным продуктом. Google улучшил концепцию, и через несколько недель он будет перезапущен с новым названием: Google Daydream . Daydream — это более или менее эволюционный шаг. Это похоже на переделанную гарнитуру Cardboard, но существенные изменения трудно заметить.

Виртуальная реальность на Android 7.0 разочарует. Не потому, что там нет технологий, а потому, что нет хорошего контента.

Поддержка появится в ближайшее время, в следующем поколении телефонов Android, но дизайнеры и разработчики могут протестировать свои концепции на Nexus 6P текущего поколения, в настоящее время единственном устройстве, совместимом с Daydream .

Google описывает Daydream как VR-решение следующего поколения для мобильных устройств с улучшенной интерактивностью и лучшим откликом по сравнению с Cardboard. Компания заявляет, что внесла улучшения на всех уровнях стека Android, чтобы повысить скорость отклика. Это должно позволить Android 7.0 быстрее получать доступ к данным датчиков и отображать соответствующую сцену виртуальной реальности в нужное время, значительно уменьшая задержку. Daydream также поставляется с новым беспроводным контроллером с кнопками APP и HOME .

К сожалению, ни одна из этих настроек не решит самую большую проблему, с которой сталкивается VR: отсутствие контента . Хорошей новостью является то, что дела налаживаются, и Google обещает предоставлять больше контента на Daydream через ряд партнерских отношений, охватывающих все, от ситкомов до игр.

Моя позиция в отношении мобильной виртуальной реальности остается несколько консервативной, как я отметил в своем обзоре Google Cardboard. Мои взгляды были частично подтверждены недавним исследованием рынка, которое, кажется, предполагает, что спрос на виртуальную реальность остается низким. Google не в состоянии решить все проблемы, с которыми сегодня сталкивается мобильная виртуальная реальность. Это не вопрос самодовольства; Google должен ждать лучшего оборудования.

Еще до того, как я попробовал Cardboard, я знал, что время автономной работы и температура будут проблемой, и Google тоже. В дальнейшем это останется затяжной проблемой. На самом деле, Google ясно заявляет, что тепловые характеристики Nexus 6P «не репрезентативны» для будущих телефонов с поддержкой Daydream :

Ожидайте, что 6P будет снижать производительность процессора и графического процессора после короткого периода использования, в зависимости от рабочей нагрузки.

Нам придется подождать, пока производители чипов и производители смартфонов представят новое поколение продуктов, прежде чем мы сможем по-настоящему воспользоваться преимуществами Daydream .

Влияние разработчиков: Daydream VR может предложить несколько новых возможностей, но это не так просто, как кажется. В то время как многие технологические компании забираются на борт поезда виртуальной реальности, потребители этого не делают. Сейчас это одинокая и дорогая поездка.

7. Пользовательский интерфейс, настройки специальных возможностей и фоновая оптимизация

Google доработал пользовательский интерфейс, добавил несколько функций и точно настроил производительность, чтобы обеспечить еще более плавный пользовательский интерфейс. Вот что нового:

  • Частичная поддержка около 100 новых языков, а также улучшенные языковые пакеты и новые локальные варианты для основных языков, таких как испанский и английский.
  • Несколько локалей в настройках, что значительно улучшит работу многоязычных и двуязычных пользователей.
  • Улучшенный WebView, встроенный в приложение браузер. Он будет полагаться на Chrome APK (начиная с версии 51) для отображения страниц, уменьшая использование памяти и требования к пропускной способности. Автономный APK WebView больше не будет обновляться , пока включен рендеринг Chrome.
  • Обновления Android for Work для повышения безопасности и обеспечения постоянной поддержки VPN. Функция быстрого переключения позволит пользователям переключаться между рабочим и личным режимами.
  • Project Svelte — это название Google для ряда фоновых оптимизаций, которые изменяют способ работы приложений, чтобы уменьшить использование оперативной памяти. Google заявляет, что продолжит расширять и обновлять JobScheduler и GCMNetworkManager , но в то же время удалит три широко используемых трансляции: CONNECTIVITY_ACTION , ACTION_NEW_PICTURE и ACTION_NEW_VIDEO . Если ваше приложение использует какой-либо из них, вам придется перейти на JobScheduler . Вы можете проверить гиковские подробности в Google.
  • Пользовательский интерфейс настраивается на экране приветствия и плитке быстрых настроек, которая теперь включает новый API, который можно использовать в сторонних приложениях. Усовершенствования уведомлений включают два новых настраиваемых API представления.
  • Google Ассистент, Google Allo, Google Duo.

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

Android 7.0: каков итог?

Справедливо сказать, что Android 7.0 не является чем-то особенным для разработчиков. Это постепенное улучшение, в основном касающееся оптимизации. Это не облегчит создание революционных приложений и сервисов, которые раньше были невозможны.

Но я не вижу в этом ничего плохого. Смартфоны уже напичканы функциями, и люди устают от уловок, поэтому понятно, что Google решил сосредоточиться на повышении производительности, энергоэффективности, безопасности и общего пользовательского опыта. И, как и iOS, Android уже достиг зрелости. Если вы разочарованы отсутствием новых функций, я предлагаю вам привыкнуть к этому, потому что это новая норма .

Времена быстрой эволюции аппаратного и программного обеспечения для мобильных устройств давно прошли. Инкрементальный — это новая норма.

Если подумать, самая большая новость об Android 7.0 — это не сама ОС. Google принял решение выпустить новые телефоны Pixel, разработанные с учетом всех преимуществ ОС. С аппаратной точки зрения в них нет ничего особенного — они основаны на готовых технологиях, как и их предшественники из серии Nexus. Но бизнес-модель Google для Pixel совсем другая, с упором на контроль сквозного взаимодействия с пользователем и добавление ценности способом, подобным Apple.

Слишком рано рассуждать о том, какое влияние Pixel окажет на остальную часть экосистемы Android, но одно можно сказать наверняка: это будет деликатный баланс. Google может зарезервировать некоторые функции исключительно для своих собственных телефонов Pixel, но в то же время он не может переигрывать. Он не может позволить себе оттолкнуть поставщиков Android и сделать их продукты менее конкурентоспособными, добавив слишком много эксклюзивных функций Pixel.

Как все это будет работать, еще предстоит увидеть, но пока мы должны сосредоточиться на том, чтобы максимально использовать возможности Android 7.0. На самом деле, сделайте 7.1, которая находится в бета-версии и, вероятно, скоро будет выпущена.

Связанный: Android M (Android 6.0) для разработчиков: эволюционный шаг в правильном направлении