Не панацея. Представим, что у нас 10-20 разных команд (в разное время). Обязательно будут разные репозитории. Например, кто-то будет писать компонент в open-source на github'е, другие компоненты будут разрабатываться под SVN в силу каких-нибудь исторических причин, третьи — на внутренних git-репозиториях. Даже если проверить, что все собирается, нет гарантий, что в одном из компонентов не используется библиотека без доступных исходников, как собственно и произошло.
Не на много. Практически всегда можно сделать тонкий слой врезки и сделегировать основную часть работы в православно написанный код в своей любимой IDE. Если я конечно правильно понял суть высказывания.
Причина в том, что продукт разрабатывался больше 15 лет в разных компаниях. За такой срок те вещи, которые никто особо не менял, покрылись большим слоем пыли.
Ресурсы действительно лучше освобождать как можно раньше. Если был вызван onStop, значит Activity не видна на экране, и незачем занимать память/диск/сеть.
Отличное замечание!
По той же ссылке указано несколько work-around'ов.
В нашем коде мы не сталкивались с этой проблемой, т.к. тэги тем не используются в корневых элементах адаптера, поэтому мы смело используем View.setTag(Object tag). Но спасибо, учту на будущее.
Абсолютно согласен, хотя стратегия заполнения хипа молодым/старым поколением может различаться.
Но в целом, необходимость специфических настроек GC — не частая задача, обычно сводящаяся к выбору самого GC.
Обычно в этом нет большой проблемы — бутылка не мешается под ногами, а лежит себе в мусорной корзине. Кроме того, new generation обычно собирается довольно оперативно и без stop the world.
Не на много. Практически всегда можно сделать тонкий слой врезки и сделегировать основную часть работы в православно написанный код в своей любимой IDE. Если я конечно правильно понял суть высказывания.
Другого пути «освободить activity» без вызова onDestroy, насколько мне всегда казалось, не существует.
для того, чтобы снять пару модификаторов, необязательно декомпилировать — можно поправить «на живую» прямо в байт-коде.
По той же ссылке указано несколько work-around'ов.
В нашем коде мы не сталкивались с этой проблемой, т.к. тэги тем не используются в корневых элементах адаптера, поэтому мы смело используем View.setTag(Object tag). Но спасибо, учту на будущее.
Но в целом, необходимость специфических настроек GC — не частая задача, обычно сводящаяся к выбору самого GC.