28 августа 2017

Android 8: что разработчик может сделать для пользователя

Часть «фишек» новой ОС любой пользователь может заметить сразу (не только их архитектура, но и реализация является частью ОС). Но другую часть сначала должны реализовать разработчики в прикладном ПО, и только после этого пользователь сможет оценить их. Давайте посмотрим, что же предлагает Android 8 Oreo.

Картинка-в-картинке

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

Уведомления

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

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

Во-вторых, появился таймаут для уведомлений. Удобно, если уведомления информируют о каких-то ограниченных по времени событиях (акция «только сегодня», например). Теоретически можно было и ранее сделать механизм, который отслеживает время и удаляет «старые» уведомления, но теперь не надо изобретать свой велосипед.

Автозаполнение

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

Загружаемые шрифты

Для типичного бизнес-приложения вещь довольно-таки бесполезная. Шрифты занимают не так много места, чтобы экономить на их включении в приложение. Гораздо дороже стоит раздражение пользователя от того факта, что он не может воспользоваться приложением немедленно, а должен сначала скачать шрифты. Другое дело какие-то дизайнерские приложения и текстовые процессоры (которые дают возможность использовать очень много шрифтов). Еще один вариант – набор приложений, использующих общие шрифты.

Автоматический размер шрифта

Для небольших надписей (заголовков, индикаторов) можно выставлять автоматический размер шрифта. Есть, конечно тонкая подстройка в виде указания минимума, максимума и шага (или даже набора конкретных значений). Удобная штука для режима многооконности (и разделения экранов, и PiP). А если еще вспомнить, что сами экраны бывают разными по размеру и шрифты можно настроить нестандартно (мельче или крупнее), то полезность становится еще более очевидна. Впрочем, назвать это киллер-фичей нельзя. Там где было жизненно необходимо, и раньше был подбор высоты шрифта. Только делался он «вручную».

Адаптивные иконки

Теперь простая иконка может содержать два варианта границ (обычная и закругленная). Кроме того вводится понятие адаптивных иконок: в этом случае отдельно задается фоновое изображение (background) и передний план (foreground). Именно адаптивные иконки поддерживают визуальные эффекты.

Настраиваемые ярлыки

Теперь приложения смогут предлагать пользователю добавлять ярлыки для отдельных сущностей (объектов) на рабочий стол. Например, можно добавить контакт из мессенджера или объект из карт.

Максимальное соотношение сторон

Теперь приложение может ограничить поддерживаемое соотношение сторон экрана (задается для ширины, т. е. числом больше 1). Остальная часть экрана при запуске приложения будет неиспользованной. Например, можно выставить 1,78 (16:9) и приложение не сможет использовать весь экран Galaxy S8 или LG G6. Но зачем это надо на практике, не очень понятно. Ведь и без такой «фишки» никто не мешает разработчику покрасить часть экрана в черный цвет и не выводить туда изображение.

Причем эта возможность игнорируется при использовании универсального растягиваемого интерфейса (через него можно делать поддержку мультиоконности, включая картинку-в-картинке).

Поддержка нескольких дисплеев

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

Ограничения фоновых процессов

Теперь приложения, которые находятся в фоне и не имеют каких-то отображаемых на экране частей (например, уведомлений), получают серьезные ограничения на произвольную работу. Раньше это было одно из ключевых отличий Android от iOS: можно было делать в фоне все, что угодно, и сколь угодно долго. Но чудес не бывает, и такие возможности однозначно сказываются на разряде аккумулятора. Сейчас гайки постепенно заворачиваются. Впрочем, такие вещи обязательно надо попробовать на практике и только потом делать выводы.

… и многое другое

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

Читайте также

  • Kandalf

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

  • Alexandr.Noskov

    Ярлыки для сущностей вещь крайне полезная. Например сделать ярлык не на весь Youtube вообще, а на определенный канал. Или на определенное видео с привязкой ко времени. В перспективе и отправлять его по почте и чтобы у абонента он сразу распознавался как ярлык и предлагал встать на рабочий стол.

  • ArtemV

    Да пишите уже просто: «не яблоко, поэтому говно»

  • John6301

    Резервное копирование есть вообще-то. И места на гугл драйве достаточно, чтобы не покупать платное хранилище, как у некоторых)

  • Ильмир Тазеев

    лол, вы там во временах Androind 1.4 живёте? Так в те времена и в Иоси не было ничего )

  • ReadFact

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

  • Alexandr Shk

    Вы с Луны свалились?

  • Там появляются дополнительные механизмы для этого: не просто какой-то фиксированный набор, а совсем произвольные. Плюс, запрос на разрешение добавления будет системным (если я ничего не путаю).

  • На андроиде нет undo на уровне системных компонентов по редактированию текста?

  • Djuri

    Нормального нет. На Самсунге и Сяоми сделали более-менее, но все равно при переезде половина программ не рабочие.

  • Cthulhu_Fhtagn

    Дельный обзор, Андрей! 👍

  • А уведомления о обновлениях канала — это же вообще довольно стандартная штука в приложении, которая есть очень давно. Ну или если не в приложении — можно на почту настроить

  • Число непрочитанных уведомлений на значке показывали на презентации Oreo.
    А NTFS — это платное решение, поддержка будет означать увеличение стоимости (при неясных бенефитах, ибо уже давно есть поддержка exFAT)

  • Kandalf

    По крайней мере на галактиках самсовых нет

  • Kandalf

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

  • Kandalf

    Не сказал бы. У меня а7-2016 с 5.1.1, у жены с7эдж с 6.0.1, если все озвученные мной вещи появились в 7/8 дроиде, то молодц .

  • Kandalf

    Именно, у меня и у жены самс, ощутил.

  • Kandalf

    Был у меня айфон, ну его нафиг,

  • John6301

    А что значит нерабочие? У меня они ставились обратно, просто приходилось опять вводить все пароли. Но по-моему это логично. Для меня главнее фотки, смс, звонки,заметки, ватсапп и хром со всеми пирогами — вот это переносилось 1 к 1. А вообще я это последний раз на 5-ом андроиде делал, наверняка с тех пор что-то изменилось.

  • goodhoopoe

    Теперь приложения смогут предлагать пользователю добавлять ярлыки для отдельных сущностей (объектов) на рабочий стол. Например, можно добавить контакт из мессенджера

    Так это было еще в старых 4.х версиях же, или теперь это нативно без костылей?

  • goodhoopoe

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

  • Lecron

    2 анимированные гифки на 20 и 24 Мб. Вы издеваетесь?

  • ArtemV

    Человек отписал внизу:) не хочет

  • Alex Ivanov

    вы с калькулятора что ли сайт смотрите?

  • Alex Ivanov

    >Ни резервного копирования как в айфоне в айтюнс/айклауд, ни значков количества сообщений в разных приложениях, как в том же айфоне
    Годный сброс!
    +15 руб.
    Но для холивара мало, ибо пи$дёжь.

  • Kandalf

    Да пофиг. Я написал чего лично мне в теории не хватает в чистом дроиде. Но так как я пользуюсь самсунгом, то там со скрипом подтянули, но все равно не полностью.

  • Alex Ivanov

    >не хватает в чистом дроиде. Но так как я пользуюсь самсунгом

    Второй или третьей галактикой что ли?
    Лол.
    Что и требовалось…

  • Kandalf

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

    А блютус… а что блютус? На дроиде норм, ага. А яблочникам к машине/гарнитуре хватает подключиться, уже норм.

  • Alex Ivanov

    >Еще раз, пофиг.
    Ну так если вам так, то зачем же вы вообще здесь пишете?
    Вам бы напрямую к разработчикам андроида, в виши свои желания адресовать.
    Ну или на худой конец сами реализуйте, SDK доступен каждому!

  • Kandalf

    Это скорее крик души.

    Дык я бы не против, как думаю и куча народу, а толку? Не думаю, что я первый эти требования высказывал.

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

  • Alex Ivanov

    ну, раз вы не профессионал в этом деле, свои желания по поводу различных ОС можете записать на листочек и повесить на стену, и кушать то, что вам дают.

  • Kandalf

    Вот, видимо сейчас именно так и делаются системы для телефонов, а жаль.

  • Lecron

    Нет. С браузера, который подгружал страницу больше минуты, а потом упал.

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

  • Clostridium_tetani

    Не-ин-те-ре-сно

  • Мидори

    Согласна, это издевательство.

  • Lecron

    Попробовал пересжать в mp4. Размер каждой уменьшился на порядок, до 2Мб.
    Но даже если не пересжимать, а пожелать оставить наглядную информацию, можно просто уменьшить разрешение. Которое и без того избыточное. Реальные гифки 500х990 и 790х1600 (!!!) браузером отображаются как 400х800.

    После ресайза, суммарный размер обоих mp4 видео, снизился до 900кб. Вместо 44 Мб.

    Продолжите ёрничать про калькулятор? Или подумаете откуда растут ноги неэффективного ПО?

  • Теперь динамически через сервис. Запрос разрешения вроде бы нативный будет.

  • >> 2 анимированные гифки на 20 и 24 Мб.

    Официальные от Гугла.

    >> Вы издеваетесь?

    Да. А как вы догадались?

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

  • Lecron

    Все верно. Они предоставли raw материал из которого можно сделать все что угодно.
    Например с ffmpeg, за 1 минуту получил теже гифки уже в 15 Мб суммарного размера.
    ffmpeg.exe -v warning -i 4.gif -vf «fps=15,scale=400:-1:flags=lanczos,palettegen» -y palette.png
    ffmpeg.exe -v warning -i 4.gif -i palette.png -lavfi «fps=15,scale=400:-1:flags=lanczos [x]; [x][1:v] paletteuse» -y 4s.gif

    >>Да. А как вы догадались?
    Фи. По-детски как-то. А еще взрослый человек, автор для серьезного ресурса. )))

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

  • Lecron

    Читал как-то беседу двух разрабов.
    – Во, новые фишки!
    – Да ну их. Пока 50% не займут, а еще лучше 70%, даже смотреть не стану. Все равно придется держать старый ненативный код или проверять версию API городя кучу условий.

  • Отчасти верно. Но только если фишки не попадают в support library. Если попадают — все меняется.

  • Lecron

    Так браузер и так их принудительно показывает в 400 пикс ширины, независимо от устройства.

  • Э… нет. У меня больше.

  • goodhoopoe

    каким образом? на убунту волшебный браузер?

    img class=»aligncenter» src=»https://mobile-review.com/articles/2017/image/android/1.gif» width=»400″

  • Убунту здесь причем? Только что проверил: и в Safari на Mac, и в Chrome на Android — шире 400 пикселей.
    https://uploads.disquscdn.com/images/9df6fe690b512657d368c2fccd82281e8001f4fc4132b1941757b5b8cfffd031.png

    https://uploads.disquscdn.com/images/9d27e4bf40465ffa6c85610d1b53860312800b53af979dc12e8795ff8b6fcf31.png

  • Lecron

    Тогда разберитесь как работает браузер. Есть ощущение, что браузер все-равно сжимает до 400 в соответствии с html указанием, а потом уже растягивает до экрана по данным полученным от устройства.

    Хотя, хозяин — барин. Но в любом случае, поимевших проблем от 44Мб на 2 картинки, куда больше. Да и уровень проблем куда выше. Плата за трафик для лимитированного доступа, время загрузки для нелимитированного, вероятные падения браузеров от нехватки памяти.

    Просто попробуйте себя представить на месте владельца среднего по России аппарата, со средним тарифом, в зоне среднего приема.

  • goodhoopoe
  • >> разберитесь

    >> Есть ощущение

    ОК.

  • Djuri

    Пароли-раз, сообщения потерянные — два, кеш наново качать — три, лицензия слетевшая четыре

  • >> азы HTML же

    Как разные браузеры (включая мобильные) отрабатывают рендеринг картинки при сочетании атрибутов width/height и масштабирования? Занятные у вас азы…

  • goodhoopoe

    именно так. все браузеры фиксированный размер картинки рендерят одинаково. они тупо сжимают большую картинку до заданного размера. больше 400пикселей(пиксель на мобильном телефон показатель условный, уж вам то это не знать) вам не покажут( в браузере на мобильном телефоне используется обратный скейл, для fhd экрана в браузере размер полотна будет в скейле х/2 или х/3. если не заданы метатегами иные значения.
    а если еще короче, то браузер на fhd экране смартфона будет иметь виртуальное разрешение либо 640×360 либо 960×540(этот формат используется по опыту чаще)
    поэтому исходную картинку шириной 500пикселей сначала заресайзит до 400, а затем на мобильном телефоне эти 400 пикселей покажутся на 800(при x/2) на десктопе 400 пикселей всегда отобразятся как 400 пикселей.

  • Lecron

    Да не важно это, как работает браузер. Страница не оптимизирована.

  • Бог Прошутто

    >>Ограничения фоновых процессов
    Ну @#$%!

  • Alexandr.Noskov

    Павел, отдельный ярлык на отдельный канал, на который приходит отдельное уведомление. Т.е. можно наделать ярлыков на раб.стол по смыслу. Вот тут наприме отдых, тут новости, а вот тут работа. И на каждый приходят свои уведомления))

  • Максим Кузнецов

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

  • Евгений Кудрявцев

    Купите Samsug S8+ там большинство из перечисленного уже есть и ограничение приложений в фоне!

  • А….
    Ну да, теперь можно и так.
    P.S. Поигравшись с уведомлениями для каналов (как E-mail, так и in-app) выключил их совсем.

  • Максим Кузнецов

    Не вижу смысла покупать дорогущий телефон только из-за прошивки.
    Тем более я пользуюсь только чистым андроидом и ставлю на него xposed и gravity box, так что его ещё и перепрошивать придётся.

  • iVasya

    Кажись, нету. Но некоторые редакторы реализуют опцию самостоятельно.

  • iVasya

    У кого-то интернет с лимитами, кто-то пытается смотреть с дачи…

  • Да-да, я уже все понял. Следующую статью буду писать с сильно сжатыми картинками (или совсем без них).

  • Lecron

    А насколько менее информативно смотрится анимация с этой страницы Google интегрировала PiP-режим с ещё одним фирменным сервисом — 4PDA? Фактически, она показывает тоже самое.

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