настроить proguard для оптимизации проектов библиотеки (а не основного проекта)

В моем приложении есть 2 проекта:

  • Проект библиотеки со всем (app-abstract.jar)
  • Небольшой запускаемый проект, который запускает его и включает стороннюю библиотеку.

Таким образом, у меня может быть несколько запускаемых проектов для разных версий приложения (Google Play/Amazon/Tablets...)

Проблема:

В одном из моих небольших запускаемых проектов, специально для Amazon, есть библиотека «in-app-purchasing.jar» размером всего 80 КБ, для которой требуется отключить все оптимизации proguard,

Поэтому мне интересно, как я могу настроить proguard, если это вообще возможно, чтобы оптимизировать только первый проект

... так как этот проект включен как большой LIBRARY JAR, я чувствую, что это должно быть легко сделать, возможно, манипулируя скриптами ant, потому что я имею в виду, что в конце приложение имеет 2 четко определенные части:

  • приложение.jar, 3mb
  • amazon in-app-billing.jar 80 КБ

Может быть, можно запустить прогард два раза, по одному на каждую банку?


person rupps    schedule 15.05.2014    source источник
comment
Вы можете рассмотреть возможность использования gradle в качестве инструмента сборки: он имеет встроенную функцию вкуса продукта, и кажется, что это именно то, что вам нужно.   -  person ben75    schedule 15.05.2014
comment
На самом деле особенность продукта Gradle — это то, что я реализовал в своей структуре. Но град или нет, проблема будет та же: входные части для proguard INSIDE ONE FLAVOR должны быть запутаны отдельно   -  person rupps    schedule 16.05.2014


Ответы (1)


Вы можете сохранить библиотеку Amazon с помощью этих строк в proguard-project.txt для проекта приложения:

-keep class com.amazon.inapp.** { *; }

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

person Eric Lafortune    schedule 18.05.2014
comment
к сожалению, с выставлением счетов Amazon In-App также требуется отключить оптимизацию, как указано developer.amazon.com/post/TxHZ4VD3PRBCAV/ ‹‹. Если этого не сделать, Proguard вылетает с фатальной ошибкой :) - person rupps; 19.05.2014