Темна тема, термічний API та бульбашки: підготовка програми для Android 10

Автор: Louise Ward
Дата Створення: 6 Лютий 2021
Дата Оновлення: 3 Липня 2024
Anonim
Темна тема, термічний API та бульбашки: підготовка програми для Android 10 - Додатки
Темна тема, термічний API та бульбашки: підготовка програми для Android 10 - Додатки

Зміст


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

Навіть якщо ви ще не оновлювали додаток для націлювання на Android Q, деякі з цих змін вплинуть кожен додаток, встановлений на Android Q, навіть якщо ваш додаток не націлений явно на цю версію Android.

Деякі з цих змін вплинуть на всі програми, встановлені на Android Q.

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

Читайте також:Android Q: Все, що розробники повинні знати

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


Уникайте затримки процесора та GPU: моніторинг температури пристрою

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

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

У той час як це уповільнення нав'язується системою, ваш типовий користувач смартфона або планшета звинуватить вашу програму в будь-якому падінні продуктивності. У найгіршому випадку, користувач може вирішити, що ваша програма є помилковою або зламаною, що може навіть видалити додаток і залишити негативний огляд Google Play у процесі.

У гіршому випадку, користувач може вирішити, що ваша програма є помилкою або зламаною.


Android Q представляє новий Thermal API, який може допомогти вам уникнути цього процесора та GPU. Ви можете використовувати метод addThermalStatusListener () цього API для створення слухача змін температурного стану, а потім налаштувати поведінку додатка, коли температура пристрою починає підвищуватися. Це може допомогти знизити шанси системи вдатися до процесору чи процесору. Наприклад, ви можете зменшити навантаження, яке ваша програма накладає на систему перегріву, знизивши роздільну здатність або частоту кадрів, або відключивши функції, що потребують ресурсів, такі як підключення до мережі.

Зауважте, що для термічного API Android Q потрібен новий шар HAL для пристрою, який на момент написання був доступний лише на пристроях Pixel.

Зменшіть напругу очей та підвищите видимість за допомогою темної теми

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

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

Користувачі можуть в будь-який час активувати цю темну тему, використовуючи нову плитку для швидких налаштувань або запустивши програму Налаштування свого пристрою та перейшовши до Медіа> Тема. На пристроях Pixel перемикання в режим збереження заряду також автоматично включить темну тему.

Темна тема застосовується на всьому пристрої, тому для забезпечення постійної роботи користувачів вам потрібно буде забезпечити, щоб ваша програма повністю підтримувала темну тему.

Щоб додати підтримку Dark Theme, переконайтеся, що ви використовуєте останню версію бібліотеки Material Android, а потім оновіть додаток для спадкування від Theme.MaterialComponents.DayNight, наприклад:

Потім вам потрібно буде створити файл res / values-night / themes.xml і успадкувати від Theme.MaterialComponents:

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

Ви можете перевірити, чи включена темна тема, скориставшись таким фрагментом:

int currentNightMode = configuration.uiMode & Configuration.UI_MODE_NIGHT_MASK; перемикач (currentNightMode) {// Темна тема наразі не активна // Конфігурація випадку.UI_MODE_NIGHT_NO: перерва; // Темна тема активна // Конфігурація випадку.UI_MODE_NIGHT_YES: перерва; }

Потім ваша програма може змінювати свою поведінку, залежно від того, яка тема наразі активна.

API панелі налаштувань: відображення налаштувань пристрою всередині додатка

Якщо ваша програма націлена на Android Q, ви більше не зможете безпосередньо змінювати налаштування Wi-Fi пристрою. Натомість вам потрібно буде запропонувати користувачеві внести потрібні зміни за допомогою API панелі налаштувань.

Ви можете використовувати цей новий API, щоб відображати вміст із програми "Налаштування пристрою" як вбудовану панель, яка ковзає по вмісту вашого додатка. З точки зору користувача, ці елементи керування в додатку дозволяють швидко та легко змінювати налаштування свого пристрою, не запускаючи окрему програму. Для розробника програми API панелі налаштувань дозволяє змінювати стан Wi-Fi та інші важливі налаштування пристрою, не заохочуючи користувача відходити від програми.

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

Створений як альтернатива SYSTEM_ALERT_WINDOW, повідомлення з бульбашками "плавають" над іншим вмістом програми у стилі, що нагадує плаваючі сповіщення, використовувані Facebook Messenger для Android.

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

Коли ваша програма намагається створити свій перший бульбашку, Android запитає користувача, чи хочуть вони дозволити всі бульбашки з вашої програми або заблокувати всі бульбашки. Якщо користувач вирішить заблокувати всі бульбашки вашого додатка, вони будуть відображатись як стандартні сповіщення. Ваші бульбашки також відображатимуться як стандартні сповіщення, коли пристрій заблоковано або постійно на дисплеї активний. Щоб забезпечити хороший досвід роботи користувачів, вам потрібно переконатися, що всі ваші бульбашки відображаються та функціонують як звичайні сповіщення.

Щоб створити міхур, вам знадобиться Діяльність, яка визначає поведінку розширеного міхура та макет, що визначає його інтерфейс користувача. Покрокове керівництво про те, як створити своє перше повідомлення про міхур, перегляньте Дослідження 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 Q Q View.setSystemGestureExclusionRects (), наприклад:

Список ExcludRects; public void onLayout (булева змінаCanvas, int зліва, int вгорі, int справа, int знизу) {setSystemGestureExclusionRects (ExcludRects); } public void onDraw (Canvas canvas) {setSystemGestureExclusionRects (ExcludRects); }

Якщо ваш додаток використовує будь-які користувацькі жести, вам слід також перевірити, чи не суперечать вони навігаційним жестам системи.

Захоплення звуку від сторонніх додатків

Android Q представляє API AudioPlaybackCapture, завдяки якому ваш додаток може записувати аудіо з інших програм - ідеально, якщо ви створюєте додаток для запису на екрані!

Для захоплення відтворення звуку потрібно запитати дозвіл RECORD_AUDIO, а потім:

  • Створіть екземпляр AudioPlaybackCaptureConfiguration, використовуючи AudioPlaybackCaptureConfiguration.Builder.build ().
  • Налаштуйте та створіть екземпляр AudioRecord, зателефонувавши на setAudioPlaybackCaptureConfig та передавши конфігурацію об'єкту AudioRecord.

Наприклад:

MediaProjection mediaProjection; AudioPlaybackCaptureConfiguration config = новий AudioPlaybackCaptureConfiguration.Builder (mediaProjection) .addMatchingUsage (AudioAttributes.USAGE_MEDIA) .build (); Запис AudioRecord = новий AudioRecord.Builder () .setAudioPlaybackCaptureConfig (config) .build ();

Цей новий API означає, що за замовчуванням сторонні додатки зможуть записувати всі звуку вашої програми Для деяких додатків це може бути проблемою конфіденційності або навіть піддавати вашій програмі ризик порушення авторських прав. Якщо потрібно, ви можете заборонити третім сторонам захоплювати звук вашого додатка, додавши на ваш Маніфест андроїд: enableAudioPlaybackCapture = "false".

Навіть якщо цей прапор встановлений, системні програми все одно зможуть фіксувати відтворення аудіо вашого додатка, оскільки функції доступності, такі як підписи, залежать від зйомки звуку.

Щоб забезпечити доступний досвід, рекомендується завжди дозволити системним компонентам захоплювати звук вашого додатка, але ви можете блокувати системні програми, використовуючи константу ALLOW_CAPTURE_BY_NONE, якщо потрібно.

Поліпшена біометрична аутентифікація

Android Q робить ряд налаштувань щодо автентифікації BiometricPrompt від Android.

1. Перевірка біометричної здатності

Перш ніж звертатися до BiometricPrompt, тепер ви можете перевірити, чи підтримує пристрій біометричну аутентифікацію, використовуючи новий метод canAuthenticate ().

2. Упорядковані діалоги біометричної аутентифікації

Android Q вносить незначні зміни до діалогів аутентифікації BiometricPrompt.

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

Для багатьох неявних біометричних способів ця процедура підтвердження є непотрібною, тому в Android Q ви можете подати запит на те, щоб система видалила кнопку підтвердження з діалогового діалогу аутентифікації.

Ця невелика зміна може мати позитивний вплив на досвід роботи користувача, оскільки перевірити свою особу, переглянувши свій пристрій, простіше, ніж дивитися на ваш пристрій, чекати, коли він визнає ваше обличчя, а потім натискати кнопку Підтвердити.

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

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

Інколи користувач може не мати змоги аутентифікуватись за допомогою біометричного введення. У цих сценаріях ви можете дозволити їм аутентифікувати свою ідентифікацію за допомогою PIN-коду, шаблона чи пароля свого пристрою за допомогою нового методу setDeviceCredentialAllowed ().

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

Запустіть вбудований код DEX безпосередньо зі свого APK

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

Ви можете ввімкнути цю нову функцію безпеки, додавши в елемент Маніфесту наступне:

android: useEmbeddedDex = "вірно"

Потім ви можете створити APK, що містить нестиснений код DEX, додавши до файлу збірки Gradle наступне:

aaptOptions {noCompress dex}

Нові дозволи для розпізнавання активності

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

API розпізнавання активності Android більше не дасть результатів, якщо ваша програма не має цього нового дозволу ACTIVITY_RECOGNITION. Зауважте, що якщо ваш додаток використовує дані вбудованих датчиків, таких як гіроскоп або акселерометр, вам не потрібно запитувати дозвіл ACTIVITY_RECOGNITION.

Починаються обмеження на активність

Щоб мінімізувати перебої, Android Q встановлює нові обмеження щодо того, коли ваша програма може розпочати діяльність. Ви знайдете повний перелік усіх умов, які дозволяють розпочати діяльність, на офіційних документах 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). Якщо ваш додаток вимагає доступу до файлу, який не відповідає цим критеріям, вам знадобиться використовувати рамку доступу до пам’яті.

На момент написання запиту можна було відмовитись від масштабного зберігання, додавши android: requestLegacyExternalStorage = "вірно" в Manifest вашого проекту, але згідно з офіційними документами 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 Beta, вручну прошивати зображення системи Android Q на свій пристрій або використовувати віртуальний Android Пристрій (AVD).

1. Встановіть бета-версію Android Q на фізичному пристрої

Якщо ви володієте сумісним пристроєм (повний список можна знайти тут), ви можете отримати оновлені Android Q Q, записавшись у програму Android Beta. На момент написання всіх телефонів 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 або якщо ви хочете почати тестувати негайно, а не входити в програму Beta і, можливо, чекати до 24 годин, щоб отримати своє перше оновлення.

3. Використовуйте емулятор Android

Якщо ви не хочете ризиків, пов’язаних із встановленням бета-програмного забезпечення на фізичному смартфоні або планшеті, або якщо у вас немає сумісного пристрою, ви можете використовувати AVD.

Щоб завантажити останнє зображення для попереднього перегляду Android Q, виконайте наступні дії:

  • Запустіть Android Studio.
  • Виберіть Інструменти> Менеджер SDK на панелі інструментів Android Studio.
  • Переконайтесь, що вибрана вкладка SDK Platforms.
  • Виберіть Показати деталі пакета.
  • Виберіть зображення Google Play Intel x86 Atom System Image.

  • Натисніть кнопку ОК.
  • Створіть AVD за допомогою цього системного зображення.

Як перевірити додаток на Android Q?

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

Після того, як ви переконалися, що ваша програма забезпечує хороший досвід роботи на Android Q, ви повинні якомога швидше опублікувати додаток, сумісний з Android Q, в Google Play. Якщо достроково випустити додаток, ви можете зібрати зворотній зв'язок, перш ніж більшість вашої бази користувачів перейдуть на Android Q.

Крім того, ви можете використовувати тестові доріжки Google Play, щоб перенести свій APK до вибраної групи тестувальників, а потім здійснити поетапну розробку до виробництва, коли ви будете задоволені їх відгуками.

Сподіваємося, ця стаття допомогла вам підготувати ваш додаток для Android Q! Яка функція Android Q вас найбільше хвилює?

Глибоке навчання та штучний інтелект - це технології, які стоять у світі завтрашнього дня. Насправді до 2030 року консалтингова компанія PwC прогнозує, що майже 40 відсотків усіх робочих місць в США м...

Зараз на ринку є безліч бездротових зарядних пристроїв. Багато з них - це просто невеликі пластикові диски, які мають одну мету: зарядити смартфон. Бездротовим зарядним пристроєм Defene Duo є оновленн...

Рекомендовано Для Вас