Обложка канала

Android Broadcast

Качественная выборка Android Dev новостей, тезисы важных новостей и статей, личное мнение

Android Broadcast

6 лет назад
Открыть в
#R8 #Proguard

How to break your Android App with ProGuard / R8

Такие оптимизаторы кода как ProGuard и R8 весьма полезны. Они помогают сократить не используемый код и ресурсы, произвести оптимизацию и обфускацию байт-кода.

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

Автор статьи рассказывает, как он встретил одну из таких ошибок у себя в приложении, пытался найти источник ее возникновения и в итоге нашел причину в правиле для оптимизации кода. В статье описано, как так получилось, что методы wait, nofify и nofifyAll класса Object были неявно помечены как не имеющие side-эффектов и были удалены при оптимизации.

Также в статье упомянуто issue, по результатам которого в новых версиях решили вызывать ошибку компиляции при наличии такого правила.