Как стать автором
Обновить
62
0
Сергей Бугаев @bugaevc

Разработчик

Отправить сообщение

Спасибо!


Нет — к сожалению планов писать про iOS пока нет, но если вы интересуетесь, могу порекомендовать книгу Mac OS X and iOS Internals: To the Apple's Core, автор Jonathan Levin.

Спасибо! У меня есть идеи для пяти статей (то есть ещё трёх), но может получиться и больше.

Да, я про это написал дальше:


Кроме того, ART может компилировать байткод в нативный код заранее, а не во время выполнения (ahead-of-time compilation)

До 7.0 Nougat ART не поддерживала JIT, только AOT (в отличие от Dalvik, который поддерживал только JIT), поэтому во многих статьях переход с Dalvik на ART описывали как переход с JIT на AOT. На самом деле это полностью новый рантайм с гораздо более продвинутой инфраструктурой для оптимизации; просто начали с реализации AOT, а потом реализовали и JIT, и, как они сами это называют, all-the-time.

Да, нужно оформлять foreground service-ом. Подробнее про это — в следующей статье.

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

О каком функционале вы говорите? То, что я назвал — восстановление activity, введённого текста, состояния переключателей, скролла и т.п. — делается автоматически и по умолчанию Android Framewok'ом. Кроме того, разработчику приложения даётся возможность эффективно сохранить и потом восстановить кастомную информацию.


Я бы не назвал это defective by design, совсем нет.


Иногда к нему приделывают костыли (возможность «закрепить» приложение, запретить его закрывать)...

Если вы про screen pinning, то это вообще не для того. Это фича, которая позволяет запретить переключение между приложениями (для снятия запрета требует пароль/код). Используется, например, чтобы ребёнок делал на вашем устройстве только то, что вы ему разрешили, или в embedded Android (разного сорта банкоматы, терминалы...); к app lifecycle это не имеет никакого отношения.


которые немного улучшают ситуацию, но это полумеры.

Посмотрите новые Android Architecture Components, это далеко не полумеры.

Согласен, но у GPS нет именно собственного интерфейса, нет MainActivity, пользователь не видит это приложение в лончере (хотя в старых версиях Android оно отображалось как Google Settings, но теперь интегрировано в системные настройки).


Подозреваю, что и отображение Maps сделано внутри Play Services. Не подскажете, где почитать про это (и про то, как реализован интерфейс Play Protect) подробнее?

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


Но если в результате


Невероятно бесит и плохо влияет на продуктивность работы

то это определённо неправильно сделанное приложение.

Я подробнее расскажу об этом в одной из следующих статей (хотя что здесь рассказывать — savedInstanceState), но идея в том, что вы не должны замечать автоматическое закрытие приложения, потому что оно откроется ровно в том же месте и в таком же состоянии (скролл, введённый текст и т.п.), в котором вы его оставили.


От настоящего переключения это отличается в основном чуть большим временем, которое нужно на переключение (приложению нужно запуститься). Сравните с выгрузкой программы в swap — она делается по тем же причинам (нехватка памяти) и при переключении на выбранную программу точно так же требуется дополнительное время, чтобы восстановить программу в таком же состоянии, как вы её оставили.


Если какое-то приложение работает не так (а, например, открывается на стартовой странице), то это неправильно написанное приложение.

По крайней мере, так утверждают сами Google (видео, слайды). Есть ещё другая известная «лёгкая» libc — musl, у неё гораздо лучше со стандартами, и, возможно, musl и bionic в большой степени объединятся (видео, слайды).
Раньше использовался Toolbox, с версии 6.0 Marshmallow перешли на Toybox. Подробнее можно почитать здесь: на LWN и в issue tracker'е.

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность