/ / Usuwanie adnotacji xml z klas Androida za pomocą Proguard - Java, Android, Gradle, Gson, Proguard

Usuwanie adnotacji xml z klas Android za pomocą Proguard - java, android, gradle, gson, proguard

Mam projekt skonfigurowany w Android Studio, który polega na pliku jar importowanym ze zdalnego repozytorium przez Gradle. Oznacza to brak folderu „/ libs”.

Ten plik jar zawiera kilka obiektów JAXB z adnotacjami XML, które wyglądają tak:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Accounts", propOrder = {
"account"
})

Jednak po stronie Androida używam Gson doserializować te obiekty. Nie sądziłem, że te adnotacje będą stanowić problem, ale Gson wykrywa je przez odbicie. Chciałbym je usunąć za pomocą ProGuard, ale nie mam pojęcia, od czego zacząć, a nawet jeśli jest to możliwe.

Myślę, że chcę użyć flagi -libraryjars w moimplik konfiguracyjny, ale nie wiem, jak uzyskać dynamiczną ścieżkę do pliku jar zaimportowanego przez Gradle. Dokumentacja dotycząca używania ProGuard dla Androida nie była jak dotąd bardzo pomocna.

Odpowiedzi:

0 dla odpowiedzi № 1

Dokumentacja Androida wyjaśnia, jak włączyć ProGuard w swoich kompilacjach (Ant, Eclipse lub Gradle). Po włączeniu:

  1. Zmniejszający się krok ProGuarda usuwa adnotacje, jeśli wydają się nieużywane w kodzie. Jeśli Gson użyje adnotacji, prawdopodobnie nie zostaną one usunięte.

  2. Krok zaciemnienia ProGuarda zostaje usunięty wszystko adnotacje domyślnie, chyba że konfiguracja określa:

    -keepattributes *Annotation*
    

    Globalny plik konfiguracyjny w zestawie Android SDK, android-sdk/tools/proguard/proguard-android.txt, zawiera tę linię, ponieważ większość programistów chce zachować adnotacje. Jeśli to skomentujesz, wszystkie adnotacje zostaną usunięte.