Обновить
26
Артем Дроздов@Artyomcool

Пользователь

Отправить сообщение
Не панацея. Представим, что у нас 10-20 разных команд (в разное время). Обязательно будут разные репозитории. Например, кто-то будет писать компонент в open-source на github'е, другие компоненты будут разрабатываться под SVN в силу каких-нибудь исторических причин, третьи — на внутренних git-репозиториях. Даже если проверить, что все собирается, нет гарантий, что в одном из компонентов не используется библиотека без доступных исходников, как собственно и произошло.
сишникам придется хуже

Не на много. Практически всегда можно сделать тонкий слой врезки и сделегировать основную часть работы в православно написанный код в своей любимой IDE. Если я конечно правильно понял суть высказывания.
Причина в том, что продукт разрабатывался больше 15 лет в разных компаниях. За такой срок те вещи, которые никто особо не менял, покрылись большим слоем пыли.
Стремно целиком переписывать код без исходников. Но врезка как раз делигирует к нормальному Executor'у, так что получился определенный компромис.
Ресурсы действительно лучше освобождать как можно раньше. Если был вызван onStop, значит Activity не видна на экране, и незачем занимать память/диск/сеть.
In extreme cases, the system might simply kill your app process without calling the activity's final onDestroy() callback


Другого пути «освободить activity» без вызова onDestroy, насколько мне всегда казалось, не существует.
ключевое слово final

для того, чтобы снять пару модификаторов, необязательно декомпилировать — можно поправить «на живую» прямо в байт-коде.
Мы сейчас тоже работаем в этом направлении, но честно говоря не вижу проблемы предварительно обрабатывать 9-patch (до выкладки в интернеты).
Отличное замечание!
По той же ссылке указано несколько work-around'ов.
В нашем коде мы не сталкивались с этой проблемой, т.к. тэги тем не используются в корневых элементах адаптера, поэтому мы смело используем View.setTag(Object tag). Но спасибо, учту на будущее.
Абсолютно согласен, хотя стратегия заполнения хипа молодым/старым поколением может различаться.
Но в целом, необходимость специфических настроек GC — не частая задача, обычно сводящаяся к выбору самого GC.
Обычно в этом нет большой проблемы — бутылка не мешается под ногами, а лежит себе в мусорной корзине. Кроме того, new generation обычно собирается довольно оперативно и без stop the world.
12 ...
17

Информация

В рейтинге
5 728-й
Работает в
Зарегистрирован
Активность