Новое в Android 11



Книга Новое в Android 11

Оцените превью для обновлений некоторых уже существующих функций, а также доступных нововведений, таких как IME animation control.


Синхронизированные анимации IME


Идея заключается в том, что IME (редактор метода ввода) появляется сам по себе, когда требуется ввод с клавиатуры. Это та функциональность, которая нужна пользователям, но она не предоставляет тот опыт, который они хотят. Она создает визуальный разрыв, просто появляясь на месте и заставляя приложения привязываться к их скорректированной компоновке с учетом изменения доступного экранного пространства. Клавиатура на самом деле анимируется… но приложение мгновенно привязывается к размеру пост-анимации, вызывая эту визуальную икоту.


Новые API — это возможность одновременно получать информацию о позиции IME, когда она анимируется (чтобы приложения могли синхронизировать свои собственные анимации), и управлять анимацией IME. Между прослушивателем и элементом управления анимацией приложения имеют достаточно возможностей для создания опыта, который совмещает изменения в пользовательском интерфейсе приложения с анимацией самого IME, обеспечивая гораздо лучшее качество.


Декодер изображения NDK


Еще один новый API, добавленный в Android 11, — это декодер изображений для NDK. Если вы сейчас используете JNI, чтобы декодировать свои изображения через API платформы или что хуже (по крайней мере, с точки зрения размера приложения), объединяя другие библиотеки для обработки декодирования изображений, то есть хорошее решение.


Теперь вы можете использовать новый API NDK ImageDecoder для обработки изображений в обычных форматах (таких как JPEG, PNG, GIF, WebP и HEIF). Дополнительную информацию смотрите в руководстве NDK. Также советую взглянуть на образец ImageDecoder, особенно Texture.cpp, чтобы узнать, как это работает.


Nullability в Android 11


Мы также добавили новые аннотации nullability к API SDK в Android 11.


В частности, Android 11 ввел аннотации через API, которые могут показывать новые предупреждения и ошибки при сборке. Некоторые API, которые раньше имели @RecentlyNullable или @RecentlyNonNull (которые могут выдавать предупреждения от компилятора Kotlin при неправильном использовании), были обновлены до @Nullable и @NonNull (которые вместо этого генерируют ошибки во время сборки). Мы также добавили новые аннотации @RecentlyNullable и @RecentlyNonNull к API, которые еще не имели никаких аннотаций.


Но подождите, это еще не все!


С момента последнего релиза превью в Android 11 появилось ещё несколько особенностей:


  • Добавлен датчик угла поворота шарнира для складных устройств.
  • NNAPI добавил “hard-swish op”, который позволяет нейросети быстрее и точнее тренироваться.
  • Начиная с Android 11, приложения, которые хотят использовать микрофон или камеру из службы переднего плана, должны добавить атрибут foregroundServiceType в свой манифест, как и изменения местоположения в Android 10.
  • Теперь приложения могут запрашивать переменную частоту обновления экрана на поддерживающих устройствах.
  • Эмулятор теперь поддерживает как переднюю, так и заднюю камеры.

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


Все детали на сайте предварительного просмотра Android 11. Дайте нам обратную связь или заполните опрос, чтобы сообщить нам свои мысли.


Релизы AndroidX


Бета-версия: CameraX



Библиотека CameraX, созданная для облегчения разработки функциональных возможностей камер (даже в рамках разнообразной экосистемы устройств), теперь вступила в бета-версию. Это означает, что API будет оставаться неизменным, поскольку команда исправляет проблемы до того, как библиотека достигнет стабильности.


Некоторые из улучшений бета-версии включают в себя:


  • явную инициализацию камеры с помощью ProcessCameraProvider;
  • возможность выбора того, какая камера (передняя или задняя) будет использоваться с одним или несколькими вариантами использования с помощью нового API CameraSelector;
  • более легкий доступ к информации о функциях камеры, таких как масштабирование и фокусировка, а также управление ими с помощью CameraInfo и CameraControl.

Еще один релиз, который стоит отметить, — это альфа-версия модуля Camera View (alpha08 на момент написания этой статьи), которая предоставляет полезные компоненты, связанные с представлениями для приложений камеры.


Оценить обзор CameraX или узнать больше о различных модулях CameraX можно на странице выпуска камеры AndroidX.


Стабильная версия


Несколько библиотек стали стабильными, в основном с исправлениями ошибок и незначительными функциями, включая:


  • Fragment 1.2.3;
  • Paging 2.1.2, которая исправляет проблему с 2.1.1, когда некоторые частично реализованные API были непреднамеренно выставлены слишком рано, что привело к потенциальным проблемам сборки или выполнения (читать: прекратите использовать 2.1.1, обновите до 2.1.2 прямо сейчас);
  • Room 2.2.5;
  • Webkit 1.2.0, который включает в себя API ForceDark для управления визуализацией веб-просмотров в темном режиме;
  • WorkManager 2.3.3 и 2.3.4.

Альфа


Особенно следует отметить, что во многих библиотеках, недавно попавших в альфа-версии, есть Activity 1.2.0-alpha02, который добавляет поддержку ActivityResultRegistry, позволяя обрабатывать потоки startActivityForResult()/onActivityResult() и requestPermissions()/onRequestPermissionsResult() без переопределения методов в Activity или фрагменте. Вы также можете взглянуть на Fragment 1.3.0-alpha02, который добавляет поддержку для этих новых API.


Статьи


В последнее время в разделе публикаций разработчиков Android появилось много технических статей, в том числе:


When, Enums и R8


Join Medium.
Join Medium.medium.com


В случае с enums добавление оператора switch (или when в Kotlin) приводит к созданию дополнительного класса и массива. Использование компилятора R8 может исправить эту ситуацию.


Модификатор Suspend — Под капотом


Мануэль Виво опубликовал эту статью:


БУДЕТ ПЕРЕВЕДЕНА


которая объясняет, как компилятор Kotlin преобразует корутины под капотом.


Корутины Kotlin: отмены и исключения


Опубликована серия из трех частей, посвященных отмене и исключениям в корутинах Kotlin:


Часть 1 содержит краткий обзор корутин, включая определение и объяснение необходимых частей, таких как CoroutineScope, Job и CoroutineContext:Корутины: самое главное
Корутины — важный инструмент для распараллеливания задач без ущерба производительности. Однако, как у любого хорошего…medium.com


Часть 2 охватывает отмену корутин. В статье описывается, как отменить определенные задания, а также целые CoroutineScopes. В ней также обсуждается кооперативность отмены и правильное окончание работы в корутине, которая была отменена.Исключения в корутинах
Продолжение цикла статей о корутинах. Другой важный элемент работы с ними — исключения. Исключения в корутинах…medium.com


Часть 3 завершает серию обсуждением того, что делать, когда все идет не так, как планировалось: как правильно обрабатывать исключения в корутинном коде. Например, исключение в корутине по умолчанию приведет к отмене всех корутин в ее CoroutineScope, но вы можете избежать этой ситуации с помощью SupervisorJob:Join Medium.
Join Medium.medium.com


Google для игр


Добавлено множество новых инструментов и функций Android:


• собственные возможности профилирования в инструменте трассировки системы Android Studio;


• поддержка собственных отладочных символов в Android Vitals, чтобы помочь вам диагностировать сбои на ходу;


• более легкий доступ к API Google для разработчиков Unity.


Вы также можете подписаться на такие превью, как:


• расширение для разработки игр для Visual Studio, облегчающее добавление поддержки Android в вашу кроссплатформенную игру;


• новый инспектор-инструмент Android GPU.


Ну а теперь…


Вперед изучать Android 11 DP2! Оцените бета-версию CameraX и другие релизы AndroidX! Больше информации на канале YouTube! Найдите новинки в разработке игр для Android!


538   0  

Comments

    Ничего не найдено.