Android N: Как Google Закручивает Гайки

В марте этого года была представлена первая предварительная версия Android N. Пока она существует в бета-версии и дата окончательного релиза еще не определена (предположительно ОС выйдет во второй половине 2016 года).

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

Эксперт по разработчикам Google Денис Неклюдов .

А для тех, кто хочет встретиться лично, Денис выступит на конференции.

Мебиус 2016 4 июня в Санкт-Петербурге.



Android N: как Google закручивает гайки

- Привет! Расскажите, пожалуйста, в нескольких словах о себе и своей работе.

- Добрый день! Меня зовут Денис Неклюдов.

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

В компании я занимаю должность тимлида, специализирующегося именно на Android-разработке.

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

— Что означает ваш эксперт по разработчикам Google? Что это дает вам в профессиональном плане? — Год назад я получил статус Google Developer Expert. По замыслу Google, основная задача эксперта GDE — соединить создателей технологий компании и простых разработчиков, которые эти технологии используют. Соответственно, эксперт может иметь ранний доступ к новым разработкам компании, имеет определенные привилегии при выступлении на конференциях и т. д. Лично мне статус GDE позволяет оперативно получать информацию о технологиях, влияющих на мою профессиональную деятельность.

Я использую это как на работе, так и при записи выпусков Android Dev. А еще занимаюсь любимым хобби: делюсь знаниями с людьми на конференциях, подкастах и статьях.

— Наверняка вам уже приходилось работать с превью-версиями Android N. Что вы думаете о представленном обновлении как разработчик? — Пока рано давать полное впечатление, потому что… На данный момент выпущена только вторая техническая предварительная версия, которая далека от финального релиза.

Но основные возможности и идеи, заложенные в обновлении, уже видны.

Я не могу сказать, что Android N — это обновление, которое глобально меняет, ломает или привносит что-то в платформу.

Это еще одно полное ежегодное обновление, добавляющее недостающие части и улучшающее существующие элементы, как, например, прошлогодний Marshmallow. — Новая версия Android N содержит немало нововведений.

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

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

Так что у современных устройств не возникнет проблем с отображением двух приложений в многооконном режиме.

Для тех, кто плотно работает с железом, самое интересное там — Vulkan API, но, насколько я знаю, он тоже не так требователен к ресурсам.

Скорее наоборот — он оптимизирован за счет работы на более низком уровне и позволяет получать больше fps при той же производительности оборудования.

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

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

Действительно, бытует мнение, что приложения для iPad (написанные для iOS) выглядят красивее и более адаптированы для планшетов, чем «планшетные» версии приложений для Android. Но это нюансы самих приложений.

Это связано не с размером экрана, а с UX при работе с планшетом.

Раньше, возможно, были подобные трудности.

Но еще в 2011 году, когда был представлен Android 4.0 и одна ОС стала работать как на планшетах, так и на других устройствах, у разработчиков появилась возможность делать приложения для планшетов и телефонов в одном установочном файле (едином apk-файле).

Те.

проблема была решена.

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

— Какие нововведения системы, на ваш взгляд, были наиболее ожидаемы разработчиками? — Честно говоря, я не заметил в списке нововведений Android N каких-то вау-фич, о которых все мечтали (о которых можно было бы сказать: «Ух ты, мы этого ждали, и они наконец это сделали»).

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

Но могу отметить наиболее значимые нововведения.

Первый пункт — это даже не вау-фича, а скорее, наоборот, очередной шаг в «закручивании гаек», который Google осуществляет на протяжении нескольких последних релизов ОС.

Речь идет о проектах внутри ОС, которые приводят к нехватке ресурсов при работе в фоновом режиме.

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

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

И с каждым релизом (и в Android Marshmallow, и теперь в Android N) Google демонстрирует тенденцию к ограничению системных ресурсов, а также доступа к сети, доступной приложениям, которые давно не используются, но работают в фоновом режиме.

.

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

Второй момент — долгожданная официальная поддержка черного списка входящих звонков.

Наиболее актуально для разработчиков приложений-менеджеров контактов или менеджеров входящих звонков.

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

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

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

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

— Как вы можете прокомментировать переход на новую версию Java? - Это двойная точка.

С одной стороны, переход на новую версию действительно необходим.

Это естественный процесс, мы рады, что появилась поддержка.

Но переход не столь ожидаем.

Многие разработчики, давно мечтавшие о возможностях Java 8, уже перешли на Kotlin с JetBrains, и Google не возражает против такого подхода.

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

Кроме того, существует проект Retrolambda, который позволяет использовать лямбды при написании кода на Java 7. Он не сильно замедляет процесс компиляции, но в то же время ускоряет разработку для любителей вставлять лямбды.

В любом случае разговор о версиях Java — это разговор о красоте кода.

Если человек думает о разработке продукта, а не о самореализации в чистом коде, всё это вторично.

Поэтому наличие новых функций Java 8, безусловно, является положительным моментом; Спасибо Google, что они к этому идут. Но многие возможности Java 8 будут поддерживаться только в Android N, и установить ее в основную или минимальную версию мы сможем не скоро — к тому времени выйдет Java 9, а может быть и Java 10. И опять же это будут какие-то бэкпорты, альтернативные способы использования фич.

— Есть ли какие-то нововведения, которые, наоборот, усложнят работу, за исключением уже упомянутого «закручивания гаек» с ресурсами для приложений в фоне? — Отключение ресурсов — это на самом деле самое главное.

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

Еще одна вещь, о которой следует беспокоиться разработчикам, начинающим писать для Android N, — это динамическое изменение DPI. Теперь пользователь может на лету менять множитель DPI в своем устройстве, и весь макет внезапно изменит свою форму.

Поэтому разработчик должен при проектировании сделать интерфейс максимально гибким и учесть, что пользователь может не только сменить устройство на другое, но и изменить множитель DPI на существующем устройстве.

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

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

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

— Вышла только вторая версия Preview для разработчиков.

Не рано ли начинать перенос приложений, тем более, что окончательная дата релиза системы еще не назначена? — Здесь важно говорить о категориях застройщиков.

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

Особенно если речь идет о приложениях-однодневках для 0,1 пользователей.

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

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

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

Однако, насколько мне известно (возможно, что-то уже изменилось), полной поддержки всех функций Java 8, обещанных в Android N, пока нет. — На ваш взгляд, сейчас лучше разработчикам сразу ориентировать новые приложения на Android N или посмотреть на более распространенные версии системы? — Если исходить из самой распространенной версии ОС на рынке, то нам нужно разрабатывать под Android 5.1 lollipop и даже не думать о поддержке Marshmallow, ведь у нее не так много пользователей.

Но такой подход изначально не правильный, т.к.

каждый день обновляется все больше пользователей.

Например, многие флагманы Samsung обновились до Marshmallow, а это означает огромное количество пользователей.

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




Приглашаем хабровчан на конференцию по мобильной разработке Мебиус 2016 (Санкт-Петербург, 4 июня), на котором Денис выступит с двумя докладами: Подробная информация о конференции - на ее сайте .

Теги: #Android #Разработка Android #Разработка мобильных приложений #разработка мобильных приложений #android n #где

Вместе с данным постом часто просматривают: