2014-12-12 4 views
2

В моем приложении у меня есть зависимость проекта библиотеки от множества неиспользуемых полей и классов методов. Поскольку это сторонняя библиотека, я не хочу самостоятельно удалять все неиспользуемые классы и методы из-за будущих обновлений. Я пытаюсь использовать ProGuard для этого, ноProguard shrinking and optimizing without obfuscation

-dontobfuscate 

исключит только весь проект от каких-либо оптимизаций сокращающихся и запутывания. Можно ли пропустить этап обфускации?

ответ

2

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

Если вы хотите сжать, оптимизировать и обфускать одну библиотеку, вы можете посмотреть руководство ProGuard> Примеры>A typical library.

+9

Проблема в том, что я действительно не хочу запутывать что-либо - все, что мне нужно, это просто удалить неиспользуемые методы и поля внутри этой библиотеки, потому что я столкнулся с ограничением 65k-методов внутри моего приложения из-за этой огромной библиотеки и multidex. не вариант, поэтому я пытаюсь использовать proguard для удаления мусора. – oneday

+2

'-dontobfuscate' отключает этап обфускации, но не этап сокращения или этап оптимизации, поэтому опция должна работать нормально для вас. –

+0

Итак, я думаю, что мое решение просто '-dontobfuscate' с' -keep' каждого класса, которое используется публичной api моей библиотеки – oneday

Смежные вопросы