一个Android项目级快速开发框架

网友投稿 784 2022-10-24

一个Android项目级快速开发框架

一个Android项目级快速开发框架

FastLib-一个快捷实现UI搭建及网络请求的Android开发库

简介:

FastLib 是一个整合了常用主流开源项目的 Android 快速搭建UI库, 其中包含 Retrofit、RxJava 、RxAndroid、RxLifecycle等三方库, 并且提供较多的基础Activity与Fragment如快速搭建微信类tab+fragment 的FastMainActivity、快速搭建包含TitleBar的FastTitleActivity及FastTitleFragment、快速搭建列表刷新的FastRefreshLoadActivity及FastRefreshLoadFragment;并提供快速配置Retrofit相关功能的FastRetrofit:解决添加统一请求header及多url等常见功能。

FastLib 只是一个快速搭建UI及网络请求的库,是常用三方库的一个封装集合,本身不具备框架特性。可在此基础上做MVP、MVVM等框架的扩展。

wiki 基于FastLib 2.2.12 、Android Studio 3.3.1、Gradle 4.10.1版本编写,后期重大变更会同步更新。

Demo中使用到的网络请求api来源于豆瓣API V2 版权及最终解释权归d豆瓣所有,如有侵权请联系删除!

主要功能

基于Retrofit2.x及RxJava2.x的网络请求封装、网络请求与生命周期绑定、快速观察者、快速loading观察者、快速返回常用错误常用功能库二次封装方便调用:Glide加载图片封装GlideManager、TabLayout+ViewPager Fragment切换封装TabLayoutManager、Logger日志打印封装LoggerManager多种常用界面布局:标题+多状态+下拉刷新+列表、标题+ViewPager等方便快速创建常用布局增加layout复用Fragment 懒加载封装快速实现Activity滑动返回、下拉刷新+自动加载更多、沉浸式状态栏+导航栏等解决一些老大难问题:Tab+Fragment 当Activity回收后Fragment 重叠-FastMainActivity、软键盘无法弹起-KeyboardHelper、状态栏文字转换-StatusBarUtil、不同Fragment切换状态栏文字颜色变换-BasisFragment+StatusBarUtil、Android 7.0 fileprovider-FastFileUtil、Android 9.0 network security policy问题等提供众多常用工具类:ToastUtil-统一样式吐司、FastFormatUtil-快速格式化时间、字节单位、double类型小数点保留几位、SizeUtil-尺寸转换屏幕宽高获取、SPUtil-暂存数据

其它功能请在demo中发现,详细使用请看wiki

[Download-蒲公英(安装密码1)]

[Download-github]

关于混淆

1、2.2.13_beta12版本开始自带混淆规则,并且会自动导入,正常情况下无需手动导入。

2、2.2.13_beta12以下版本可参考proguard-rules.pro

重大更新日志 其它版本参看Release

关于模板项目template

伴随新版本 2.3.6 发布,项目增加一个模板项目 template 以完成基础配置,开发者可直接在此项目上进行开发方便。

2.3.2优化: 优化FastManager初始化init逻辑,FastLib自动初始化解决多进程异常问题优化: 将eventbus、bga-swipebacklayout、UIWidget:tab-layout 使用compileOnly开发者根据需要导入 2.2.13新增: 下拉刷新接口IFastRefreshView及标题栏IFastTitleBarView 2.2.11-androidx重大变更: 2.2.11的androidx版本-起始版本 2.2.11  最后一个support版本以后版本为androidx 2.2.10-beta6  重大变更:重构大部分代码及实现方式删除许多类及实现方法包括三方库慎重升级与之前版本有很大差异优化:BasisFragment 控制是否为单Fragment 方法优化:调整ActivityFragmentControl 将状态栏及导航栏控制增加优化:多状态管理StatusLayoutManager调整完成优化:滑动返回控制swipeBack功能新增各种回调功能优化:将原默认配置方法调整到最终实现类功能新增:增加友盟统计功能演示新增:新增首页演示其它三方库状态栏及导航栏功能控制新增:个人MineFragment中选择头像功能三方库状态栏及导航栏控制示例优化:UI全局控制相关回调并调整三方库Activity控制优化:新增FastRetrofit -/上传功能优化:新增FastRetrofit 控制多BaseUrl方式新增:新增Demo检查版本功能试验-文件功能删除:删除原多状态布局相关配置修复:修改FastRefreshActivity 设置Adapter错误BUG升级:升级部分三方库版本修复:删除IHttpRequestControl判断避免http错误时无法全局控制BUG优化:修改解析method方法增加对get方法兼容优化:修改ToastUtil 增加子线程调用自动切换主线程操作优化:优化-功能新增FastDownloadRetrofit并新增格式化文件方法FastFormatUtil#formatDataSize修复:修复FastRetrofit无法删除单个header问题优化:优化上传文件并通过新增的FastUploadRequestBody及FastUploadRequestListener实现单个/多个文件 上传进度监听 可参看 MineFragment 示例优化:FastFileUtil 安装App在Android 7.0以下版本兼容性新增:新增IMultiStatusView 用于设置StatusLayoutManager 属性优化:调整setMultiStatusView位置并抽离设置StatusLayoutManager相关属性优化:注释及代码规范调整优化:调整列表刷新控制多状态配置及itemClick事件优化:优化-功能统一使用全局设置Retrofit优化:优化LoggerManager可设置自定义属性优化:优化FastRetrofit日志打印控制--json格式打印新增:demo新增拖拽调整列表顺序功能新增:FastFileUtil及fast_file_path以适配更多文件系统及开发者自定义 2.2.9-beta6        重构设置全局TitleBarView设置方式(通过TitleBarViewControl实现可参看AppImpl实现类) 2.2.9-beta5        library 直接compile UIWidget core 3.1.0版本 2.1.5 更新        新增众多全局设置TitleBarView属性、Adapter加载动画、SmartRefreshLayout刷新配置、Glide加载占位Drawable属性等控制的FastConfig类用于全局设置应用通用属性并减少部分冗余代码及冗余drawable资源文件 2.1.0 更新        将部分系统及第三方库在FastLib里使用provided编译,实际项目中需要根据项目需要compile合适的版本避免版本重复

录屏预览

折叠屏效果一览

快速实现页面下拉刷新-全局控制及局部个性化-参考WebActivity、FastRefreshActivity、MineFragment

虚拟导航栏控制-参考AppImpl类 NavigationBarControl接口实现注释说明

模拟器软键盘控制

华为可隐藏软键盘控制

华为全面屏手势控制

开启GPU过度绘制检测+GPU呈现模式分析

DoraemonKit集成效果(一定要手动开启 悬浮窗权限 )-包括沉浸式及UI微调

Gradle集成-尽量使用正式版本

allprojects { repositories { ... maven { url "https://jitpack.io" } }}

dependencies { implementation 'com.github.AriesHoo:FastLib:x.y.z'}

Maven集成

jitpack.io https://jitpack.io

com.github.AriesHoo FastLib x.y.z

Compile集成

implementation project(':fastLib')

包含第三方库

compileSdkVersion = 28 minSdkVersion = 19 minLibSdkVersion = 15 targetSdkVersion = 28 supportVersion = "1.0.0" widgetVersion = "3.2.24" versionCode = 248 versionName = "2.3.6"

dependencies { compileOnly "com.google.android.material:material:$rootProject.supportVersion" // compileOnly 'androidx.appcompat:appcompat:'.concat(supportVersion) compileOnly "androidx.recyclerview:recyclerview:$rootProject.supportVersion" //万能适配器 compileOnly 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.49-androidx' //webView库 compileOnly 'com.just.agentweb:agentweb:4.1.2' //下拉刷新库 compileOnly 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-andx-14' //图片加载 compileOnly 'com.github.bumptech.glide:glide:4.10.0' //常用UI控件(TitleBarView、RadiusView等) api "com.github.AriesHoo.UIWidget:widget-core:$rootProject.widgetVersion" //快速Tab库 compileOnly "com.github.AriesHoo.UIWidget:tab-layout:$rootProject.widgetVersion" //日志打印 api 'com.orhanobut:logger:2.2.0' //注解 api 'com.jakewharton:butterknife:10.1.0' //retrofit+rxjava 网络请求及数据解析相关 api "io.reactivex.rxjava2:rxjava:2.2.6" api 'io.reactivex.rxjava2:rxandroid:2.1.1' api 'com.squareup.retrofit2:retrofit:2.6.1' api 'com.squareup.retrofit2:converter-gson:2.6.1' api 'com.squareup.retrofit2:adapter-rxjava2:2.6.1' //3.12.x是支持Android 4.4的 api 'com.squareup.okhttp3:logging-interceptor:3.12.2' api 'com.google.code.gson:gson:2.8.5' //处理rxjava内存泄漏-生命周期绑定 api 'com.trello.rxlifecycle3:rxlifecycle-components:3.0.0' //滑动返回Activity compileOnly 'cn.bingoogolapple:bga-swipebacklayout:1.2.0@aar' //页面事件交互-androideventbus-停止维护 compileOnly 'org.simple:androideventbus:1.0.5.1' //页面事件交互-eventbus compileOnly 'org.greenrobot:eventbus:3.1.1' //多状态视图切换 api 'com.github.Bakumon:StatusLayoutManager:1.0.4'}

鸣谢

Retrofit 是 Square出品的网络请求库,极大的减少了 Http 请求的代码和步骤RxJava 提供优雅的响应式 API 解决异步请求以及事件处理RxAndroid 为 Android 提供响应式 APIRxlifecycle,在 Android 上使用 RxJava 都知道的一个坑,就是生命周期的解除订阅,这个框架通过绑定 Activity 和 Fragment 的生命周期完美解决该问题Okhttp 同样 Square 出品,不多介绍,做 Android 的都应该知道Gson 是 Google 官方的 Json Convert 框架Butterknife 是 JakeWharton 大神出品的 View 注入框架AndroidEventBus 是一个轻量级的 EventBus,提供TAG支持Logger 是 orhanobut 出品的 Log 框架,FastLib提供相关封装类LoggerManagerGlide 是Google推荐的图片加载库,FastLib提供相关封装类GlideManagerBaseRecyclerViewAdapterHelper 是陈宇明封装的RecyclerView 适配器帮助类SmartRefreshLayout 是scwang90封装的刷新库,扩展性很强AgentWeb 是Justson封装的原生WebView库,使用方便扩展性很强BGASwipeBackLayout 是bingoogolapple-王浩封装的微信效果的Activity滑动返回库StatusLayoutManager 是Bakumon封装的多状态控制管理工具,方便实现加载中、加载失败、网络错误等状态TabLayout 是AriesHoo forked from FlycoTabLayout并加以优化调整的主界面tab、滑动tab、分段选择器tab功能库UIWidget 是AriesHoo 封装的常用UI库(TitleBarView、RadiusView、StatusViewHelper、NavigationViewHelper等)

License

Copyright 2017-2020 Aries HooLicensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License at http://apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python操作sqllite3
下一篇:odoo field 设置匿名函数domain
相关文章

 发表评论

暂时没有评论,来抢沙发吧~