Snails-app
Android — быстрая сборка app-фреймворка
✔️ 1. Библиотека изображений Glide
✔️ 2. Погружение в статусную строку, поддержка экрана с вырезом
✔️ 3. Интеграция ButterKnife
✔️ 4. Интеграция Activity Stack Manager
✔️ 5. Инструмент журнала
✔️ 6. Интеграция Retrofit для сетевых запросов
✔️ 7. Базовый класс BaseActivity
Описание архитектуры программного обеспечения
Требования к Glide
Требования Android SDK:
Min Sdk Version — для использования Glide требуется min SDK версии API 14 (Ice Cream Sandwich) или выше.
Compile Sdk Version — Glide должен быть скомпилирован с использованием API версии 27 (Oreo MR1) или более поздней версии SDK.
Support Library Version — используемая версия библиотеки поддержки Glide равна 27.
Если вам нужно использовать другую версию библиотеки поддержки, вы должны удалить «com.android.support» из зависимостей Glide в файле build.gradle вашего проекта. Например, если вы хотите использовать v26 библиотеки поддержки:
dependencies {
implementation ("com.github.bumptech.glide:glide:4.9.0") {
exclude group: "com.android.support"
}
implementation "com.android.support:support-fragment:26.1.0"
}
Использование разных версий библиотеки поддержки с Glide может привести к некоторым ошибкам во время выполнения, таким как:
java.lang.NoSuchMethodError: No static method getFont(Landroid/content/Context;ILandroid/util/TypedValue;ILandroid/widget/TextView;)Landroid/graphics/Typeface; in class Landroid/support/v4/content/res/ResourcesCompat; or its super classes (declaration of 'android.support.v4.content.res.ResourcesCompat'
at android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119)
Это также может вызвать сбой генератора API Glide и помешать правильному созданию класса GlideApp.
Для получения дополнительной информации см. #2730.
Использование в этой библиотеке
GlideApp
(можно использовать Glide без настройки)*
dependencies {
annotationProcessor "com.github.bumptech.glide:compiler:$версия Glide"
}
AppGlideModule
или SnailsGlideModule
в пакете имени проекта:Наследование от AppGlideModule
package com.ak.aigo; // Здесь находится имя пакета проекта
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;
/**
* Настройка Glide:
* Обратите внимание:
* 1. Этот файл находится в каталоге первого уровня под именем пакета.
* 2. Добавьте следующую зависимость в файл build.gradle app-модуля:
* annotationProcessor "com.github.bumptech.glide:compiler:4.9.0"
* 3. Используйте GlideApp.with(fragment).load(myUrl).into(imageView);
* Замените Glide.with(fragment).load(myUrl).into(imageView);
* @author lawrence
* @date 2019-04-25 17:35
*/
@GlideModule
public class GlobalGlideModule extends AppGlideModule {
}
Наследование от SnailsGlideModule
, SnailsGlideModule
также наследует AppGlideModule
и реализует некоторые настройки по умолчанию.
package com.ak.aigo;
import com.bumptech.glide.annotation.GlideModule;
import com.snails.app.glide.SnailsGlideModule;
/**
* Настройка Glide:
* Обратите внимание:
* 1. Этот файл находится в каталоге первого уровня под именем пакета.
* 2. Добавьте следующую зависимость в файл build.gradle app-модуля:
* annotationProcessor "com.github.bumptech.glide:compiler:4.9.0"
* 3. Используйте GlideApp.with(fragment).load(myUrl).into(imageView);
* Замените Glide.with(fragment).load(myUrl).into(imageView);
* @author lawrence
* @date 2019-04-25 17:35
*/
@GlideModule
public class GlobalGlideModule extends SnailsGlideModule {
}
SnailsApp
import android.app.Application;
import com.snails.app.SnailsApp;
import com.snails.app.configuration.IConfiguration;
import com.snails.app.configuration.model.SnailsDebug;
import com.snails.app.configuration.model.SnailsNetwork;
public class AiGoApplication extends Application {
private IConfiguration iConfiguration = new IConfiguration() {
@Override
public SnailsDebug debug() {
return new SnailsDebug().tag("AiGo").debug(true);
}
@Override
public SnailsNetwork network() {
return new SnailsNetwork()
.isOnline(false) // Является ли это официальной версией, по умолчанию true-официальная версия
.testUrl("http://www.test.com") // Тестовый адрес
.productUrl("http://www.product.com"); // Производственный адрес
}
@Override
public SnailsRestful restful() {
return new SnailsRestful()
.cache(new File("cache/json"), 5 * 1024 * 1024)
.debug(true, "Snails-restful");
}
};
@Override
public void onCreate() {
super.onCreate();
SnailsApp.instance().init(this, iConfiguration);
}
}
SnailsApp
Компоненты, их названия и функции
Название | Описание | Как использовать |
---|---|---|
Глайд (Glide) | Загрузка и отображение изображений и т. д. | Glide.md (Примечание: китайский язык не обновляется в реальном времени) https://muyangmin.github.io/glide-docs-cn/doc/getting-started.html |
Глайд-трансформации (Glide-transformations) | Библиотека для обрезки изображений Глайд | transformations.md https://github.com/wasabeef/glide-transformations |
Глайдхелпер (GlideHelper) | Вспомогательный инструмент Глайд | GlideHelper.md https://gitee.com/ak-star/snails-app/blob/master/readme/README.GlideHelper.md |
Иммерсионбар (ImmersionBar) | Панель состояния погружения, поддержка экрана с вырезом | ImmersionBar.md https://github.com/gyf-dev/ImmersionBar |
Викхендлер (WeakHandler) | Handler для предотвращения утечки памяти | WeakHandler.md https://gitee.com/ak-star/snails-app/blob/master/readme/README.WeakHandler.md |
Стораджсинглетон (StorageSingleton) | Хранилище данных | StorageSingleton.md https://gitee.com/ak-star/snails-app/blob/master/readme/README.StorageSingleton.md |
ДискЛруКэшУтил (DiskLruCacheUtil) | Инструмент для хранения файлов на диске, имитирующий LruCache | DiskLruCacheUtil.md https://gitee.com/ak-star/snails-app/blob/master/readme/README.DiskLruCacheUtil.md |
ТостУтил (ToastUtil) | Подсказки toast | ToastUtil.md https://gitee.com/ak-star/snails-app/blob/master/readme/README.ToastUtil.md |
Логгер (Logger) | Инструмент вывода журнала | Logger.md https://gitee.com/ak-star/snails-app/blob/master/readme/README.Logger.md |
ЭнвиронментУтил (EnvironmentUtil) | Инструмент переключения между тестовой и производственной средой | EnvironmentUtil.md https://gitee.com/ak-star/snails-app/blob/master/readme/README.EnvironmentUtil.md |
БэйзАктивити (BaseActivity) | Базовая активность | BaseActivity.md https://gitee.com/ak-star/snails-app/blob/master/readme/README.BaseActivity.md |
БэйзФрагмэнт (BaseFragment) | Базовый фрагмент | BaseFragment.md https://gitee.com/ak-star/snails-app/blob/master/readme/README.BaseFragment.md |
ДаблКликХэлпер (DoubleClickHelper) | Предотвращение двойного нажатия | DoubleClickHelper.md https://gitee.com/ak-star/snails-app/blob/master/readme/README.DoubleClickHelper.md |
АктивитиХэлпер (ActivityHelper) | Помощник активности | ActivityHelper.md https://gitee.com/ak-star/snails-app/blob/master/readme/README.ActivityHelper.md |
Участие в проекте
Советы по использованию Code Cloud
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )