Темная тема, Thermal API и Bubbles: подготовка вашего приложения для Android 10

Автор: Louise Ward
Дата создания: 6 Февраль 2021
Дата обновления: 2 Июль 2024
Anonim
Темная тема, Thermal API и Bubbles: подготовка вашего приложения для Android 10 - Программы
Темная тема, Thermal API и Bubbles: подготовка вашего приложения для Android 10 - Программы

Содержание


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

Даже если вы еще не обновляете свое приложение для Android Q, некоторые из этих изменений будут влиять каждый приложение, установленное на Android Q, даже если ваше приложение не предназначено для этой версии Android.

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

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

Также прочитайте:Android Q: все, что нужно знать разработчикам

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


Избегайте дросселирования процессора и графического процессора: мониторинг температуры устройства

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

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

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

В худшем случае пользователь может решить, что ваше приложение содержит ошибки или сломано.


В Android Q представлен новый API-интерфейс Thermal, который поможет вам избежать удушения процессора и графического процессора. Вы можете использовать метод addThermalStatusListener () этого API, чтобы создать прослушиватель для изменений теплового состояния, а затем настраивать поведение вашего приложения при каждом повышении температуры устройства. Это может помочь уменьшить вероятность того, что система прибегнет к дросселированию процессора или графического процессора. Например, вы можете уменьшить нагрузку, которую приложение прикладывает на систему с перегревом, снизив разрешение или частоту кадров, или отключив ресурсоемкие функции, такие как подключение к сети.

Обратите внимание, что в Android Q Thermal API требуется новый уровень HAL для устройств, который на момент написания был доступен только на устройствах Pixel.

Уменьшите напряжение глаз и улучшите видимость с темной темой

В Android Q пользователи могут активировать общесистемную тему Dark, которая предназначена для уменьшения напряжения зрения, улучшения видимости в условиях низкой освещенности и снижения энергопотребления на устройствах с OLED-экранами.

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

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

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

Чтобы добавить поддержку Dark Theme, убедитесь, что вы используете последнюю версию библиотеки Material Android, а затем обновите свое приложение, чтобы унаследовать от Theme.MaterialComponents.DayNight, например:

Затем вам нужно будет создать файл res / values-night / themes.xml и наследовать от Theme.MaterialComponents:

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

Вы можете проверить, включена ли темная тема, используя следующий фрагмент:

int currentNightMode = configuration.uiMode & Configuration.UI_MODE_NIGHT_MASK; switch (currentNightMode) {// Темная тема в данный момент не активна // case Configuration.UI_MODE_NIGHT_NO: break; // Темная тема активна // case Configuration.UI_MODE_NIGHT_YES: break; }

Ваше приложение может затем изменить свое поведение, в зависимости от того, какая Тема в настоящее время активна.

API панели настроек: отображение настроек устройства в вашем приложении

Если ваше приложение предназначено для Android Q, вы больше не сможете напрямую изменять настройки Wi-Fi устройства. Вместо этого вам нужно будет предложить пользователю внести необходимые изменения с помощью API панели настроек.

Вы можете использовать этот новый API для отображения контента из приложения настроек устройства в виде встроенной панели, которая скользит по контенту вашего приложения. С точки зрения пользователя, эти элементы управления в приложении позволяют им быстро и легко изменять настройки своего устройства без необходимости запуска отдельного приложения. Для разработчика приложений API панели настроек позволяет изменять состояние Wi-Fi и другие важные настройки устройства, не побуждая пользователя отказаться от своего приложения.

В Android Q Google делает уведомления стиля головы чата официальной частью платформы Android с введением Bubble API.

Разработанные в качестве альтернативы SYSTEM_ALERT_WINDOW, пузырьковые уведомления кажутся «плавающими» над другим содержимым приложения, в стиле, который напоминает плавающие уведомления, используемые Facebook Messenger для Android.

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

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

Чтобы создать пузырь, вам понадобится Activity, определяющая поведение расширенного пузыря, и макет, определяющий его пользовательский интерфейс. Пошаговое руководство по созданию первого всплывающего уведомления см. В разделе «Изучение Android Q: Добавление всплывающих уведомлений в приложение».

Повышение доступности с помощью общесистемной жестовой навигации

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

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

В режиме жестовой навигации ваше приложение должно использовать весь экран, поэтому первым шагом будет сообщить системе Android, что ваше приложение поддерживает просмотр от края до края. Чтобы расположить приложение в полноэкранном режиме, вы можете использовать флаги SYSTEM_UI_FLAG_LAYOUT_STABLE и SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION, например:

view.setSystemUiVisibility (View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);

Вам также необходимо реализовать поддержку прозрачной системной панели, добавив в свою тему следующее:

Когда пришло время протестировать ваше приложение, вам нужно убедиться, что системные жесты Android Q не запускают какие-либо элементы управления вашего приложения, такие как кнопки или меню. В частности, в Android Q используется внутреннее движение для действия «Назад» и «вверх» для режима «Домой» и «Быстрое переключение», которые могут мешать работе любых элементов пользовательского интерфейса, расположенных в этих областях.

Если во время тестирования вы обнаружите, что смахивание с нижней части экрана или смещение внутрь вызывает срабатывание элементов управления вашего приложения, тогда вы можете указать, какие регионы настроены для получения сенсорного ввода. Чтобы заблокировать определенные области, передайте список в API View.setSystemGestureExclusionRects () Android Q, например:

Список exclusionRects; public void onLayout (логическое changeCanvas, int слева, int сверху, int справа, int снизу) {setSystemGestureExclusionRects (exclusionRects); } public void onDraw (Canvas canvas) {setSystemGestureExclusionRects (exclusionRects); }

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

Захват аудио из сторонних приложений

В Android Q представлен API-интерфейс AudioPlaybackCapture, который позволяет вашему приложению захватывать звук из других приложений - идеально, если вы создаете приложение для записи экрана!

Чтобы захватить воспроизведение звука, вам нужно запросить разрешение RECORD_AUDIO, а затем:

  • Создайте экземпляр AudioPlaybackCaptureConfiguration, используя AudioPlaybackCaptureConfiguration.Builder.build ().
  • Сконфигурируйте и создайте экземпляр AudioRecord, вызвав setAudioPlaybackCaptureConfig и затем передав конфигурацию объекту AudioRecord.

Например:

MediaProjection mediaProjection; AudioPlaybackCaptureConfiguration config = new AudioPlaybackCaptureConfiguration.Builder (mediaProjection) .addMatchingUsage (AudioAttributes.USAGE_MEDIA) .build (); AudioRecord record = new AudioRecord.Builder () .setAudioPlaybackCaptureConfig (config) .build ();

Этот новый API означает, что по умолчанию сторонние приложения смогут записывать все аудио вашего приложения. Для некоторых приложений это может быть проблемой конфиденциальности или даже может привести к нарушению авторских прав. При необходимости вы можете запретить третьим лицам захватывать звук вашего приложения, добавив в свой манифест android: allowAudioPlaybackCapture = «false».

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

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

Улучшенная биометрическая аутентификация

Android Q вносит ряд изменений в аутентификацию Android BiometricPrompt.

1. Проверьте биометрические возможности

Перед вызовом BiometricPrompt вы можете проверить, поддерживает ли устройство биометрическую аутентификацию, с помощью нового метода canAuthenticate ().

2. Оптимизированные диалоги биометрической аутентификации

Android Q вносит небольшие изменения в диалоги аутентификации BiometricPrompt.

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

Для многих неявных биометрических модальностей это действие «Подтверждение» не требуется, поэтому в Android Q вы можете запросить, чтобы система удалила кнопку «Подтверждение» из диалогового окна вашей биометрической аутентификации.

Это небольшое изменение может оказать положительное влияние на взаимодействие с пользователем, поскольку проверить вашу личность, посмотрев на ваше устройство, проще, чем посмотреть на ваше устройство, подождать, пока оно узнает ваше лицо, и затем нажать кнопку «Подтвердить».

В Android Q вы можете запросить удаление системой кнопки «Подтвердить», передав значение false методу setConfirmationRequired (). Обратите внимание, что система может игнорировать ваш запрос в определенных сценариях, например, если пользователь отключил неявную аутентификацию в настройках своего устройства.

3. Альтернативные методы аутентификации

Иногда пользователь может быть не в состоянии аутентифицироваться с использованием биометрического ввода. В этих сценариях вы можете позволить им аутентифицировать свою идентификацию, используя PIN-код, шаблон или пароль своего устройства, используя новый метод setDeviceCredentialAllowed ().

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

Запустите встроенный код DEX прямо из вашего APK

В Android Q можно запускать встроенный код DEX непосредственно из вашего файла APK, что поможет предотвратить вмешательство злоумышленников в локально скомпилированный код вашего приложения.

Вы можете включить эту новую функцию безопасности, добавив следующее к элементу вашего манифеста:

андроид: useEmbeddedDex = "истина»

Затем вы можете создать APK, содержащий несжатый код DEX, добавив в файл сборки Gradle следующее:

aaptOptions {noCompress dex}

Новые разрешения для распознавания активности

Android Q представляет новое разрешение на выполнение com.google.android.gms.permission.ACTIVITY_RECOGNITION для приложений, которым необходимо записывать количество шагов пользователя или классифицировать его физическую активность, например, бегать или ездить на велосипеде.

API распознавания активности Android больше не будет предоставлять результаты, если у вашего приложения нет этого нового разрешения ACTIVITY_RECOGNITION. Обратите внимание, что если ваше приложение использует данные от встроенных датчиков, таких как гироскоп или акселерометр, вам не нужно запрашивать разрешение ACTIVITY_RECOGNITION.

Ограничения на начало активности

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

Системные оповещения удалены из Android Go

Если ваше приложение запускается на устройстве под управлением Android Q и Android Go, оно не сможет получить доступ к разрешению SYSTEM_ALERT_WINDOW. Это изменение было реализовано, чтобы избежать заметных падений производительности, которые могут возникнуть, когда устройства Android Go пытаются нарисовать оверлейное окно SYSTEM_ALERT_WINDOW.

Попрощайтесь с Android Beam

Android Q знаменует собой конец Android Beam, поскольку эта функция обмена данными официально устарела.

Обеспечение безопасности ваших пользователей: ключевые изменения конфиденциальности

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

К сожалению, эти изменения могут повлиять на поведение вашего приложения и даже могут полностью сломать ваше приложение. При тестировании приложения на Android Q вам следует обратить особое внимание на следующие изменения конфиденциальности:

1. Объем хранилища: новая модель внешнего хранилища Android

Android Q накладывает новые ограничения на доступ приложений к внешнему хранилищу.

По умолчанию, если ваше приложение предназначено для Android Q, оно будет иметь «фильтрованное представление» во внешнем хранилище устройства (ранее называемое «изолированным представлением»), которое обеспечивает доступ только к каталогу приложения.

Обладая областью хранения, ваше приложение может получить доступ к этому каталогу приложения и всему его содержимому, без необходимость декларировать любые разрешения на хранение.Однако ваше приложение может получить доступ к файлам, созданным другими приложениями, только если ему было предоставлено разрешение READ_EXTERNAL_STORAGE, и эти файлы находятся в Фото (MediaStore.Images), Видео (MediaStore.Video) или Музыке (MediaStore.Audio). Если вашему приложению требуется доступ к файлу, который не соответствует этим критериям, вам потребуется использовать Storage Access Framework.

На момент написания этой статьи можно было отказаться от хранения с ограниченным объемом, добавив android: requestLegacyExternalStorage = ”true” в манифест вашего проекта, но в соответствии с официальной областью хранения документов Android в конечном итоге потребуется всем приложениям, поэтому рекомендуется Вы обновляете свое приложение как можно скорее.

2. Решите, когда приложение может получить доступ к вашему местоположению

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

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

  • Когда ваше приложение работает на переднем плане только.
  • Все время (т.е. когда ваше приложение находится на переднем плане а также фон).

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

Для реализации этих изменений Android Q вводит новое разрешение ACCESS_BACKGROUND_LOCATION.

Если вашему приложению требуется доступ к информации о местоположении, пока оно находится в фоновом режиме, вам необходимо запросить это новое разрешение вместе с существующим разрешением ACCESS_COARSE_LOCATION или ACCESS_FINE_LOCATION. Например:

3. Новые ограничения на не сбрасываемые системные идентификаторы

Если вам требуется доступ к не сбрасываемым системным идентификаторам, таким как IMEI и серийный номер, теперь вам необходимо запросить разрешение READ_PRIVILEGED_PHONE_STATE.

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

Убедитесь, что вы готовы к работе с Android. Q: Тестирование приложения

Лучший способ убедиться, что ваше приложение обеспечивает хорошее взаимодействие с пользователем на Android Q, - это протестировать его на устройстве под управлением Android Q.

Пока мы ожидаем официального релиза, есть три способа проверить ваше приложение на соответствие предварительным просмотрам для разработчиков Android Q: зарегистрируйте свое устройство в бета-версии Android, вручную перенесите образ системы Android Q на свое устройство или используйте Android Virtual Устройство (AVD).

1. Установите бета-версию Android Q на физическое устройство

Если у вас есть совместимое устройство (полный список можно найти здесь), вы можете получать беспроводные обновления Android Q, зарегистрировавшись в бета-версии Android. На момент написания этой статьи все телефоны Google Pixel поддерживаются программой Android Beta. Это включает в себя Google Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL, Pixel 3a и Pixel 3a XL.

Если у вас нет Pixel, бета-версия Android Q также доступна на некоторых устройствах от нескольких производителей, включая Asus, Huawei, LG, Xiaomi и другие. Для полного списка поддерживаемых устройств, проверьте список прямо здесь.

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

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

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

Если вы хотите начать получать беспроводные обновления Android Q, зайдите на сайт Android Beta для получения дополнительной информации.

2. Вручную прошить образ системы Android Q

Если вам не нравится идея получать обновления Android Q по беспроводной сети, вы можете загрузить и вручную перенести образ системы Android Q на свое устройство Pixel.

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

3. Используйте эмулятор Android

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

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

  • Запустите Android Studio.
  • Выберите Инструменты> Менеджер SDK на панели инструментов Android Studio.
  • Убедитесь, что выбрана вкладка Платформы SDK.
  • Выберите Показать сведения о пакете.
  • Выберите Google Play Образ системы Intel x86 Atom.

  • Нажмите ОК.
  • Создайте AVD, используя этот образ системы.

Как я могу проверить свое приложение на Android Q?

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

Убедившись, что ваше приложение обеспечивает хорошее взаимодействие с пользователем на Android Q, вы должны как можно скорее опубликовать ваше совместимое с Android Q приложение в Google Play. Выпуская свое приложение раньше, вы можете собрать отзывы до того, как большая часть вашей пользовательской базы перейдет на Android Q.

Кроме того, вы можете использовать дорожки тестирования Google Play, чтобы отправить свой APK в выбранную группу тестеров, а затем выполнить поэтапное развертывание в производство, когда вы будете довольны их отзывами.

Мы надеемся, что эта статья помогла вам подготовить ваше приложение для Android Q! Какая функция Android Q вас больше всего волнует?

Недавно анонсированный amung Galaxy Note 10 Plu - это новейший флагманский телефон в линейке Note. Он обладает множеством высококачественных функций, в том числе огромным экраном, большим количеством ...

Впервые компания amung решила выпустить две разные модели, которые имеют общее название Note 10: Galaxy Note 10 и Galaxy Note 10 Plu. С любым новым выпуском естественно интересоваться тем, как он скла...

Популярное сегодня