28 августа 2017

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

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

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

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

Уведомления

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

63 комментария на «“Android 8: что разработчик может сделать для пользователя”»

  1. Kandalf:

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

    • ArtemV:

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

    • John6301:

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

      • Djuri:

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

        • Kandalf:

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

        • John6301:

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

          • Djuri:

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

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

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

      • Kandalf:

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

    • Alexandr Shk:

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

      • Kandalf:

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

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

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

    • Alex Ivanov:

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

      • Kandalf:

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

        • Alex Ivanov:

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

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

          • Kandalf:

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

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

            • Alex Ivanov:

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

              • Kandalf:

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

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

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

                • Alex Ivanov:

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

                  • Kandalf:

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

  2. Alexandr.Noskov:

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

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

      • Alexandr.Noskov:

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

  3. ReadFact:

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

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

  4. Cthulhu_Fhtagn:

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

  5. goodhoopoe:

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

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

  6. Lecron:

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

    • Alex Ivanov:

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

      • Lecron:

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

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

      • 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:

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

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

              • goodhoopoe:

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

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

                  • Lecron:

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

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

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

                    • >> азы HTML же

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

                    • goodhoopoe:

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

          • iVasya:

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

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

          • Lecron:

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

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

  7. Clostridium_tetani:

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

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

      • Lecron:

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

  8. Бог Прошутто:

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

  9. Максим Кузнецов:

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

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

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

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

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