AspectJX: Мощный AOP-инструмент для Android-разработки

15 Sep, 2021

Репозиторий давно не обновлялся

Последнее обновление было 4 года назад.

Представьте ситуацию: вам нужно добавить логирование вызовов методов в большом Android-приложении. Писать boilerplate-код для каждого метода? Спасибо, нет. Именно здесь на помощь приходит AspectJX.

Что такое AspectJX?

AspectJX — это Gradle-плагин, который расширяет возможности AspectJ для Android-разработки. В отличие от других решений, он работает не только с Java, но и с Kotlin, AAR и JAR файлами. Это делает его уникальным инструментом в арсенале Android-разработчика.

Ключевые возможности

  1. Поддержка Kotlin Больше не нужно ограничиваться Java — AspectJX работает с Kotlin так же эффективно.

  2. Работа с бинарными файлами Можете подключать аспекты к уже скомпилированным AAR/JAR-файлам, что особенно полезно при работе со сторонними библиотеками.

  3. Гибкая конфигурация Позволяет включать/исключать конкретные пакеты из обработки, что ускоряет сборку.

  4. Значительный прирост производительности По сравнению с предыдущими версиями, AspectJX 2.0 показывает улучшение скорости сборки до 129%.

Как это работает?

Установка проста:

// В build.gradle уровня проекта
dependencies {
    classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.8'
}

// В build.gradle модуля
apply plugin: 'android-aspectjx'

Конфигурация позволяет тонко настроить обработку:

aspectjx {
    exclude 'android.support' // Исключаем поддержку старых версий
    enabled true // Включаем плагин
}

Практическое применение

С помощью AspectJX можно:

  • Автоматизировать логирование
  • Реализовать проверку прав доступа
  • Замерять время выполнения методов
  • Внедрять кеширование

Пример использования — реализация динамических разрешений Android M.

AspectJX — отличное решение для Android-разработчиков, которые:

  • Хотят внедрить AOP в свои проекты
  • Работают с Kotlin
  • Используют сторонние библиотеки (AAR/JAR)

Если вы еще не пробовали AspectJX — самое время добавить его в свой инструментарий. Простота интеграции и мощные возможности точно вас порадуют.