Имеет ли значение порядок утверждений / есть ли приоритет в Proguard? - PullRequest
1 голос
/ 12 апреля 2019

В файле proguard-rules.pro имеет значение порядок операторов?Например, от более широкого к более конкретному:

# Class names are needed in reflection
-keepnames class com.amazonaws.**
-keepnames class com.amazon.**
# This is a big hammer to fix "unable to marshall response" errors.
-keep class com.amazonaws.services.cognitoidentityprovider.** { *; }
# Request handlers defined in request.handlers
-keep class com.amazonaws.services.**.*Handler

против, более конкретно к более широкому:

# This is a big hammer to fix "unable to marshall response" errors.
-keep class com.amazonaws.services.cognitoidentityprovider.** { *; }
# Request handlers defined in request.handlers
-keep class com.amazonaws.services.**.*Handler
# Class names are needed in reflection
-keepnames class com.amazonaws.**
-keepnames class com.amazon.**

Влияет ли порядок операторов -keep на то, как Proguard обрабатывает файл?

В дополнение к этому, что, если две директивы -keep * охватывают один и тот же класс?Какой из них вступает в силу, первый объявлен в файле правил или более конкретное правило?

Например:

-keepnames class com.amazonaws.**
-keep class com.amazonaws.services.cognitoidentityprovider.** { *; }

Второе правило задает подмножество первого правила, ноВторое правило является более строгим (-keep vs. -keepnames).Какое из этих утверждений повлияет на подмножество пространства имен?

...