Разрешить только обфускацию, но не сжатие кода в Android? - PullRequest
1 голос
/ 17 апреля 2019

Я хочу включить только функцию запутывания в ProGuard, но в то же время отключить сжатие кода, поэтому я установил

minifyEnabled false
useProguard true

Однако, теперь компиляция релиза больше не генерирует mapping.txt, что, как мне кажется, указывает на то, что обфускация не выполняется? Я думал, что minifyEnabled контролирует сжатие кода и useProguard контролирует запутывание, но это не так?

Что именно делает флаг useProguard и как мне достичь желаемого результата?

Ответы [ 2 ]

4 голосов
/ 17 апреля 2019

minifyEnabled true: работает ProGuard

shrinkResources true: удаляет ресурсы, которые ProGuard пометил как неиспользуемые.

При удалении ненужных файлов из DEX размер APK также уменьшается. Для вашей цели вы можете установить этот атрибут на false.

0 голосов
/ 17 апреля 2019

Я думаю, вам нужно использовать опцию -dontshrink, чтобы сохранить все неиспользуемые классы, методы и ресурсы.

Чтение Параметры сжатия , где документация гласит

-dontshrink

Указывает не сокращать файлы входных классов. По умолчанию применяется сжатие; удаляются все классы и члены класса, кроме тех, которые перечислены в различных опциях -keep, и тех, от которых они зависят, прямо или косвенно. Шаг сжатия также применяется после каждого шага оптимизации, поскольку некоторые оптимизации могут открыть возможность удаления большего количества классов и членов класса.

...