Проблемы с обфускацией проекта библиотеки Android с помощью Proguard

При применении Proguard в проекте библиотеки Android существуют хорошо известные соображения и проблемы. Обычно основная логика такова:

  1. Используйте правильные рекомендации по коду и указывайте только общедоступный API как public foo()....
  2. Используйте хорошо известные правила Proguard, которые относятся к типу «запутать все приватные».

Эти (с другими известными правилами библиотеки Proguard) обычно обеспечивают желаемый результат.

Хак заключается в следующем: у меня есть большой (и сложный в плане зависимостей и использования сторонних API и SDK) библиотечный проект, исторически написанный без хороших правил кодирования. Таким образом, тривиальное решение состоит в том, чтобы пройти класс за классом и подготовить какое-то пользовательское правило -keep для каждого. Это совсем не выполнимая задача. Есть ли альтернатива в таких случаях? Целью является запутывание без использования Proguard, поэтому я готов использовать альтернативы.


person michael    schedule 01.11.2015    source источник
comment
Означает ли это, что нет строгого разделения между общедоступными (методы, которые вы хотите предоставить в своем API) и частными методами?   -  person Bas    schedule 01.11.2015
comment
@Bas именно так, и я думаю, что есть больше проблем, и я привел public Vs private в качестве простого примера.   -  person michael    schedule 01.11.2015