# snails-app **Repository Path**: zhanght_admin/snails-app ## Basic Information - **Project Name**: snails-app - **Description**: 安卓 — 快速构建app框架 - **Primary Language**: Android - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2019-06-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # snails-app #### 介绍 安卓 — 快速构建app框架 ✔️ 1、图片库Glide ✔️ 2、沉浸式状态栏、刘海屏支持 ✔️ 3、集成ButterKnife ✔️ 4、集成Activity堆栈管理器 ✔️ 5、日志工具 ✔️ 6、集成Retrofit网络请求框架 ✔️ 7、基础BaseActivity #### 软件架构 软件架构说明 #### 安装教程 ##### 1. Glide 安装注意说明【目前Glide版本4.9.0】 > ** 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。 如果你需要使用不同的支持库版本,你需要在你的 build.gradle 文件里去从 Glide 的依赖中去除 "com.android.support"。例如,假如你想使用 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) 也可能造成 Glide 的 API 生成器失败,从而不能正确地生成 GlideApp 类. 请参阅 #2730 获取这方面的更多信息。 ``` > ** 本库中使用要求 ** ###### *【非必需】```GlideApp```使用说明*(只使用Glide无需设置) * 在项目app模块的 build.gradle 下增加下面设置 ``` dependencies { annotationProcessor "com.github.bumptech.glide:compiler:$你的Glide版本" } ``` * 在项目app模块,包名下创建继承```AppGlideModule```或者```SnailsGlideModule```类,如下: 继承```AppGlideModule``` ``` package com.ak.aigo; // 此处即为项目的包名 import com.bumptech.glide.annotation.GlideModule; import com.bumptech.glide.module.AppGlideModule; /** * Glide设置: * 注意: * 1、此文件,在包名下,即一级目录 * 2、app模块的build.gradle中添加下面依赖: * 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、app模块的build.gradle中添加下面依赖: * 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 { } ``` ##### 2. xxxx ##### 3. xxxx --------------- #### 使用说明 * 1、初始化```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); } } ``` * 2、```SnailsApp```扩展功能 ``` isTest(): boolean 得到当前环境状态,true-测试环境,false-生产环境 setTest(boolean isTest): void 设置当前环境状态,true-测试环境,false-生产环境 ``` #### 组件名称、及功能说明 名称|描述|使用方法 ---|:--|:--- Glide|图片下载、显示等|[Glide.md 注:中文非实时更新](https://muyangmin.github.io/glide-docs-cn/doc/getting-started.html) Glide-transformations|Glide图片剪裁库|[transformations.md](https://github.com/wasabeef/glide-transformations) GlideHelper|Glide辅助工具|[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|基础Activity|[BaseActivity.md](https://gitee.com/ak-star/snails-app/blob/master/readme/README.BaseActivity.md) BaseFragment|基础Fragment|[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|activity辅助工具|[ActivityHelper.md](https://gitee.com/ak-star/snails-app/blob/master/readme/README.ActivityHelper.md) ------------- #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)