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

OSCHINA-MIRROR/xuexiangjys-XAOP

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

XAOP

XAOP — это облегчённый фреймворк для Android, который включает в себя наиболее полезные аспекты применения AOP. Не стоит раздумывать, лучше сразу перейти к использованию документа с инструкциями. Попробуйте!

О себе

Публичный аккаунт Juejin Zhihu CSDN Jianshu SegmentFault Bilibili Ruru
Мой путь в мир открытого исходного кода Android Нажмите здесь Нажмите здесь Нажмите здесь Нажмите здесь Нажмите здесь Нажмите здесь Нажмите здесь

Быстрое объединение библиотек серии X

Чтобы упростить интеграцию библиотек серии X, я предлагаю шаблон пустой оболочки для вашего удобства: https://github.com/xuexiangjys/TemplateAppProject


Особенности

  • Поддержка быстрого нажатия на срез @SingleClick, с возможностью настройки интервала времени между нажатиями.
  • Поддержка динамического запроса разрешений на срез @Permission, с возможностью настраивать ответные действия.
  • Поддержка основного потока среза @MainThread.
  • Поддержка среза потока ввода-вывода @IOThread, поддерживающего различные типы пулов потоков.
  • Поддержка срезов ведения журнала @DebugLog, с возможностью настроить способ записи журнала.
  • Поддержка кэширования памяти @MemoryCache, с возможностью установить размер кэша.
  • Поддержка дискового кэширования @DiskCache, с поддержкой пользовательского дискового кэша, срока действия и т. д.
  • Поддержка автоматического перехвата исключений @Safe, с возможностью установки пользовательского обработчика исключений.
  • Поддержка пользовательских срезов перехвата @Intercept, с возможностью настройки перехвата срезов.
  • Совместимость с синтаксисом Kotlin.
  • Поддержка androidx.

График популярности Star

График популярности Stargazers с течением времени


1. Демонстрация (пожалуйста, поддержите звезду)

aop.gif

2. Как использовать

В настоящее время поддерживается использование основных инструментов разработки AndroidStudio. Просто настройте build.gradle и добавьте зависимости.

2.1. Метод импорта Android Studio, добавление Gradle зависимостей

  1. Сначала добавьте в build.gradle в корне проекта repositories:
allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}
  1. Затем добавьте плагин xaop в build.gradle в корне проекта dependencies:
buildscript {
    ···
    dependencies {
        ···
        classpath 'com.github.xuexiangjys.XAOP:xaop-plugin:1.1.0'
    }
}
  1. В build.gradle приложения добавьте зависимость и ссылку на плагин xaop:
apply plugin: 'com.xuexiang.xaop' //ссылка на плагин xaop

dependencies {
    ···
    //Если это проект androidx, используйте версию 1.1.0 или выше
    implementation 'com.github.xuexiangjys.XAOP:xaop-runtime:1.1.0'
    //Если это проект поддержки, пожалуйста, используйте 1.0.5
    implementation 'com.github.xuexiangjys.XAOP:xaop-runtime:1.0.5'
}
  1. Инициализируйте в Application:
XAOP.init(this); //инициализация плагина
XAOP.debug(true); //включение срезов логирования
XAOP.setPriority(Log.INFO); //установка уровня логирования по умолчанию 0

//Настройка обработки событий отказа в разрешении динамического запроса разрешения
XAOP.setOnPermissionDeniedListener(new PermissionUtils.OnPermissionDeniedListener() {
    @Override
    public void onDenied(List<String> permissionsDenied) {
        //Обработка отказа в запросе разрешения
    }
});

//Установка обработчика перехвата пользовательских срезов
XAOP.setInterceptor(new Interceptor() {
    @Override
    public boolean intercept(int type, JoinPoint joinPoint) throws Throwable {
        XLogger.d("Перехват выполняется, тип перехвата:" + type);
        switch(type) {
            case 1:
                //Выполняем желаемую обработку
                break;
            case 2:
                return true; //return true, напрямую перехватить выполнение среза
            default:
                break;
        }
        return false;
    }
});

//Установить обработчик автоматического захвата исключений
XAOP.setIThrowableHandler(new IThrowableHandler() {
    @Override
    public Object handleThrowable(String flag, Throwable throwable) {
        XLogger.d("Поймано исключение, флаг исключения:" + flag);
        if (flag.equals(TRY_CATCH_KEY)) {
            return 100;
        }
        return null;
    }
});

2.2. Конфигурация, совместимая с синтаксисом Kotlin

  1. Добавьте плагин aspectjx в build.gradle в корне проекта зависимостей:
buildscript {
    ···
    dependencies {
        ···
        classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.10'
    }
}
  1. В build.gradle приложения добавьте зависимость и ссылку на aspectjx:
apply plugin: 'android-aspectjx' //ссылка на aspectjx

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

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

Введение

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

Обновления

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

Участники

все

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

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