ConsumerProguardFiles vs ProguardFiles

War ich versucht, eine Anwendung zu erstellen, die enthalten eine Bibliothek-Modul La mit proguard und ich bemerkte, dass die Bibliothek wurde nicht verschleiert. Versuche zu verstehen, warum. In diesem moment in der Zeit war mein buildType:

release {
 minifyEnabled false
 useProguard true
 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
} 

Nach einiger Suche habe ich über das ConsumerProguardFiles Funktion, die besagt:

ProGuard Regel Dateien, die in der veröffentlichten AAR.

Diese proguard-Regel-Dateien werden dann von einer Anwendung Projekt
verbraucht der AAR (wenn ProGuard aktiviert ist).

Dies ermöglicht AAR angeben, schrumpfen oder Verschleierung exclude-Regeln.

Dies ist nur gültig für die Bibliothek-Projekt. Diese ignoriert in der Anwendung
Projekt.

Mit diesem nun die buildType meiner Bibliothek La ist folgende:

release {
 minifyEnabled false
 useProguard true
 consumerProguardFiles 'proguard-rules.pro'
}

Und jetzt meine Bibliothek La wird es mit der proguard-Regeln und der code der Bibliothek ist verschleiert.

Also meine Fragen sind:

1) Was ist der Grund für dieses unterschiedliche Verhalten. Warum nicht ProguardFiles verschleiern Bibliothek proguarded Regeln, sondern stattdessen ignoriert es?

2) ich vermute, dass das, was die ConsumerProguardFiles tut, ist das Zusammenführen der Regeln der Bibliothek mit der wichtigsten Anwendung proguard Regeln. Ist diese Annahme richtig?

3) kurz gesagt: verwenden Sie proguardFiles für Anwendungen und ConsumerProguardFiles für Bibliotheken. Richtig?

Danke für Eure Zeit beim Lesen!

  • was ist der Zweck der useProguard true?
  • Im Grunde useProguard true ist standardmäßig aktiviert. Ich habe gerade, um zu sehen, ob es irgendeinen Unterschied, indem er es ausdrücklich oder nicht. (Gibt es nicht). Aber Sie können finden Sie unter developer.android.com/studio/build/shrink-code.html für komplexere Antwort unter "Aktivieren der code schrumpft mit Instant-Run"
InformationsquelleAutor Peddro | 2017-01-10
Schreibe einen Kommentar