1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wei.chou-annoguard

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Annoguard

Данный документ описывает, как использовать новый синтаксис для конфигурации Proguard на основе @Annotation.



Глоссарий, определение и объяснение правил

  • Сильное (Keep): ни переименовывать, ни удалять;
  • Слабое (Keep): гарантировать, что не будет переименовано, но без гарантии, что не будет удалено;
  • Обратное (Keep): без гарантии того, что не будет переименовано, но с гарантией того, что не будет удалено;
  • Не (Keep): вне вышеуказанных правил. Означает применение дефолтного поведения Proguard.

Приоритет

  • От высокого к низкому в порядке: Сильное, Слабое, Обратное, Не. При переносе в подкласс/подинтерфейс подкласс/подинтерфейс получает тот же приоритет.
  • В любом месте, если одно имя аннотируется различными приоритетами, но одинаковой функцией @KeepXxx, применяется более высокий.

Назначение

  • Содержит символы $$ (Reverse Keep). Например: @Keep$$;

  • Содержит символ $ (Strong Keep, исключая Reverse Keep). Например: @Keep$;

  • Не содержит указанных выше символов означает Weak Keep;

  • Нет определения аннотации для Non Keep, значит, нет необходимости аннотировать имена;

    Эквивалентно: все типы Non Keep, если какие-либо поля типов сохраняются, имена классов типов будут сохранены Reverse.

  • Заканчивается на e (e), означает, что функция, указанная словами перед «e», будет перенесена в подкласс/подинтерфейс. Например: @KeepMp$e;

    Обратите внимание, что только когда суперкласс/суперинтерфейс не удаляется в задаче Proguard, подкласс/подинтерфейс может быть сохранён. Это означает, что сначала необходимо сохранить Strong/Reverse суперкласс/суперинтерфейс.

Символы в конце @KeepXxx означают места, на которые действует аннотация.
  • V: var, действует на переменные/поля;

  • M: метод, действует на методы/функции;

  • C: конструктор, действует на конструкторы;

  • p: public (var/метод, зависит от другого символа — V или M). Если не содержит, то игнорирует public/private...;

  • s: static (var/method, зависит от другого символа — V или M). Если не содержится, то нестатический.

    Более подробную информацию см. в каждом документе @KeepXxx.

Остальное

  • Любая аннотация в пакете **.anno.inject, если она не удаляется при выполнении задачи Proguard, будет применять Reverse Keep к именам, на которые она действует напрямую.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/wei.chou-annoguard.git
git@api.gitlife.ru:oschina-mirror/wei.chou-annoguard.git
oschina-mirror
wei.chou-annoguard
wei.chou-annoguard
master