XAOP
XAOP — это облегчённый фреймворк для Android, который включает в себя наиболее полезные аспекты применения AOP. Не стоит раздумывать, лучше сразу перейти к использованию документа с инструкциями. Попробуйте!
Публичный аккаунт | Juejin | Zhihu | CSDN | Jianshu | SegmentFault | Bilibili | Ruru |
---|---|---|---|---|---|---|---|
Мой путь в мир открытого исходного кода Android | Нажмите здесь | Нажмите здесь | Нажмите здесь | Нажмите здесь | Нажмите здесь | Нажмите здесь | Нажмите здесь |
Чтобы упростить интеграцию библиотек серии X, я предлагаю шаблон пустой оболочки для вашего удобства: https://github.com/xuexiangjys/TemplateAppProject
@SingleClick
, с возможностью настройки интервала времени между нажатиями.@Permission
, с возможностью настраивать ответные действия.@MainThread
.@IOThread
, поддерживающего различные типы пулов потоков.@DebugLog
, с возможностью настроить способ записи журнала.@MemoryCache
, с возможностью установить размер кэша.@DiskCache
, с поддержкой пользовательского дискового кэша, срока действия и т. д.@Safe
, с возможностью установки пользовательского обработчика исключений.@Intercept
, с возможностью настройки перехвата срезов.В настоящее время поддерживается использование основных инструментов разработки AndroidStudio. Просто настройте build.gradle и добавьте зависимости.
build.gradle
в корне проекта repositories:allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
build.gradle
в корне проекта dependencies:buildscript {
···
dependencies {
···
classpath 'com.github.xuexiangjys.XAOP:xaop-plugin:1.1.0'
}
}
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'
}
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;
}
});
build.gradle
в корне проекта зависимостей:buildscript {
···
dependencies {
···
classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.10'
}
}
build.gradle
приложения добавьте зависимость и ссылку на aspectjx:apply plugin: 'android-aspectjx' //ссылка на aspectjx
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )