Skip to content

Releases: JessYanCoding/MVPArt

2.5.0

Choose a tag to compare

@JessYanCodingJessYanCoding released this 07 Dec 09:21

每次升级之前, 请一定记得先同步更新 config.gradle !!!

「Version: 2.5.0」Friday, 7 December 2018: Show Diff

v2.5.0 将一些 Art 核心库的代码抽取到了扩展库中,以便于框架使用者可以更灵活的选择不同的三方库,并且还可以减轻 Art 的体积,后续还会继续分拆更多的扩展库出来,让 Art 的扩展性更强,体积更轻,想让旧项目从 v2.4.1 升级到 v2.5.0 根据 这里 修改即可!!!

附赠 AndroidAutoLayout 迁移指南

注意!!! 由于 v2.5.0IView 中使用到了接口的默认方法,所以在升级 v2.5.0 之前必须保证项目使用了 Java 8 及以上

  • 提升 Gradlev4.6
  • 提升 Glidev4.8.0
  • 提升 Gsonv2.8.5
  • 提升 Daggerv2.19
  • 提升 Timberv4.7.1
  • 提升 Okhttpv3.12.0
  • 提升 Rxpermissionsv0.10.2
  • 提升 RxJavav2.2.4
  • 提升 RxAndroidv2.1.0
  • 提升 RetrofitUrlManagerv1.4.0
  • 提升 com.android.tools.build:gradlev3.2.1
  • 提升 android-maven-gradle-pluginv2.1
  • 移除 Art 中的 com.android.support:design 库,目的是减小 Art 体积, design 库中含有太多 View
  • 移除 Art 中的 AndroidEventBus
  • 增加 IntelligentCacheIntelligentCache 含有 LRU 算法的存储容器和可永久将数据存储在内存中的存储容器,对 IntelligentCache 的增删改查都可以根据需求在两个存储容器中选择一个进行操作
  • 新增 Platform 类,可管理 Art 中可扩展的三方库的依赖情况
  • 新增 EventBusManager 类,使用者可自由在 AndroidEventBusEventBus 中选择
  • 新增 AppComponent#executorService,提供一个全局公用的线程池给使用者
  • 新增 mContext 字段到 BaseFragment
  • 优化 Retrofit 获取 Service 的方式,根据知乎提供的方式,可以加快第一次获取 Service 的速度
  • 优化 IView,将部分接口方法改为默认方法,以后实现类不再需要实现 IView 的所有方法
  • 优化 PermissionUtil,当请求权限失败,可反馈所有请求失败的权限名称
  • 优化 Demo,将 Demo 中的屏幕适配框架从 AndroidAutoLayout 替换为 AndroidAutoSize
  • 修复 RepositoryManager#clearAllCache() 无效的问题
  • 修复 BaseActivity 中,当 xml 解析错误不会抛真实错误的问题
  • 修复 Art 会在网络请求体中有 '%' 字符时奔溃的问题
  • 修复当项目中使用 Logger 时,Art 网络日志打印会出现错乱的问题
  • 修复 AdapterViewPager 引起奔溃的问题,#219
  • 重构 ArtAndroidAutoLayout 的部分代码,并将代码抽取到扩展库 art-autolayout
  • 重构 ArtGlide 的部分代码,并将代码抽取到扩展库 art-imageloader-glide
  • 重构 AppManager,可使用静态方法 AppManager#getAppManager 直接获取 AppManager 实例,之前通过 AppComponent#appManager() 获取的方式废弃
  • 重命名 app -> demo

2.4.1

Choose a tag to compare

@JessYanCodingJessYanCoding released this 11 Apr 09:15

每次升级之前, 请一定记得先同步更新 config.gradle !!!
Show Diff

之前引入 v2.3.5 及以下的旧版本项目, 只须做一处修改即可兼容 v2.4.1, 请注意 向下兼容警告

  • 增加 FormatPrinter, 提供更规范的网络请求以及网络响应日志打印格式, 并且可以在 GlobalConfiguration 中根据自己的需求自定义想要的输出格式, 详见 Demo
  • 增加 BlurTransformation, 使 GlideImageLoaderStrategy 默认支持高斯模糊
  • 移动 RequestInterceptorhttp.log 包下, 引用了这个类的地方都需要重新导入正确的包名, 在 DemoGlobalHttpHandlerImplGlobalConfiguration 这两个类有引用 RequestInterceptor ( 向下兼容警告: 这里需要旧版本项目做出重新导包的调整 )
  • 优化 框架中的 Dagger 应用方式, 模板 也做了相应优化
  • 优化 Demo 图标
  • 优化 ImageConfigImpl, 新增几个字段 (isCircle, imageRadius, blurValue ...), 以添加几个 GlideImageLoaderStrategy 默认支持的 BitmapTransformation, 以后 ImageConfigImpl 将不能存放 BitmapTransformation 类型(之前的 transformation 字段将作废掉, 将在之后的版本被 删除 ), ImageConfigImpl 以及它的子类只能存放基础类型和 Android 包里的类, 尽量避免存放某个图片请求框架的特有类, 这样可以隔离耦合, 降低 ImageLoader 切换为其他图片请求框架的风险
  • 调整 minSdkVersion14 (之前是 15)
  • 修复 AnroidStudio v3.1.0 及以上版本日志输出格式混乱的问题, (据 JessYan 猜测, 可能是因为 AndroidStudio v3.1.0 及以上版本将极短时间内以相同 tag 输出多次的 log 自动合并为一次输出, 导致本来对称的输出日志, 出现不对称的问题)
  • 兼容 AnroidStudio v3.1.0 (模板 也已兼容)
  • 提升 RxErrorHandlerv2.1.1
  • 提升 RetrofitUrlManagerv1.2.5
  • 提升 GradlePlugins3.1.0
  • 提升 SupportLibraryv27.1.0
  • 提升 Retrofitv2.4.0
  • 提升 Daggerv2.15
  • 提升 Glidev4.6.1
  • 提升 Okhttpv3.10.0
  • 提升 RxAndroidv2.0.2
  • 提升 Rxjavav2.1.12
  • 提升 Upgrade Timberv4.7.0

2.3.5

Choose a tag to compare

@JessYanCodingJessYanCoding released this 15 Jan 10:05

Show Diff
升级之前, 请一定记得同步更新 config.gradle !!!
之前引入 v2.3.5 以上的旧版本的项目, 无需任何修改即可直接升级, 如果之前自己自定义过 BaseActivityBaseFragment, 升级到 v2.3.5 之后还需要依照框架中的 BaseActivityBaseFragment, 实现 provideCache() 方法即可

  • 修复 ImageLoader 扩展后发生 ClassCastException 异常 #175
  • 修复 BadParcelableException 异常(#160, #180)
  • 增加 IActivity#provideCache()IFragment#provideCache() 方法, 提供在 ActivityFragment 的生命周期内存取一些必要的数据, 更高级的方式可使用 LifecycleModel
  • 优化框架中和 Demo 中的注释
  • 优化 RepositoryManager 高并发问题
  • 优化 AppManager 高并发问题
  • 优化 DeviceUtils, 避免在 Android6.0 版本上获取 ConnectivityManager 时发生内存泄露
  • 优化 GlobalHttpHandlerImpl, 使用 Gson 替代 JSONObject 解析 Json
  • 提升 Android Gradle Plugin 到 v3.0.1
  • 提升 Android SDK 到 27
  • 提升 BuildTools 到 v27.0.3
  • 提升 Android Support Library 到 v27.0.2
  • 提升 Dagger 到 v2.14.1
  • 提升 Glide 到 v4.5.0
  • 提升 Okhttp 到 v3.9.1
  • 提升 RxJava 到 v2.1.8
  • 提升 RxCache 到 v1.8.3
  • 提升 RxPermissions 到 v0.9.5
  • 提升 Timber 到 v4.6.0

2.3.1

Choose a tag to compare

@JessYanCodingJessYanCoding released this 11 Nov 03:02

之前引入旧版本的项目需要调整后才能兼容 v2.3.1, 请注意 向下兼容警告
Show Diff

  • 兼容 Android Studio v3.0 以及 Android Gradle Plugin v3.0
  • 支持 Android Gradle Plugin v3.0 的一些特性
  • 支持 Lifecycles of Architecture Components, 在 Presenter 中可直接使用 Architecture Components 提供的生命周期组件, 可与 ActivityFragment 的生命周期做绑定
  • 增加 CacheLruCache, 以存储一些框架必需的数据
  • 增加 shouldShowRequestPermissionRationale 方法到 RequestPermission 接口中, 当请求权限时用户选择不再询问则会回调此方法( 向下兼容警告: 这里需要旧版本项目作出调整 )
  • 优化 RxCacheConfiguration 配置 RxCache 的方式( 向下兼容警告: 这里需要旧版本项目作出调整 )
  • 提升 RxErrorHandler 到 v2.1.0(支持背压)
  • 提升 RxJava2 到 v2.1.6
  • 提升 Gson 到 v2.8.2
  • 提升 Leakcanary 到 v1.5.4
  • 提升 Android Support Library 到 v26.1.0
  • 提升 Okhttp 到 v3.9.0
  • 提升 retrofit-url-manager 到 v1.1.0
  • 提升 Progressmanager 到 v1.5.0
  • 提升 Glide 到 v4.2.0
  • 提升 Dagger 到 v2.12
  • 修复 BadParcelableException 的问题
  • 修复 AppManager#appExit() 在进程未被杀死时释放资源的问题

2.2.3

Choose a tag to compare

@JessYanCodingJessYanCoding released this 12 Sep 10:46

Show Diff

  1. 提升 Android Support Library 到 v26.0.2
  2. 重构 AppManager ,增加 AppManager#getTopActivity(), AppManager#killAll(Class[]), AppManager#killAll(String...) 等方法,使 AppManager 更加强大,详细用法,请查看源码注释
  3. 增加 AppManager.HandleListener 接口,可扩展和遥控 AppManager 的更多功能,使用方法请参考 Wiki 以及 Demo
  4. 优化 GlobalConfiguration ,使结构更加清晰
  5. 优化代码风格
  6. 添加开源许可

2.2.0

Choose a tag to compare

@JessYanCodingJessYanCoding released this 24 Aug 04:18

Show Diff

  1. RetrofitUrlManager 以最简洁的 Api 让 Retrofit 同时支持多个 BaseUrl 以及动态改变 BaseUrl
  2. 提升 Android SDK 以及 buildTools 到最新的 26 (Oreo)
  3. 提升 Android Support Library 到 v26.0.1
  4. 提升 框架所使用的部分三方库的版本(Rxjava2 v2.1.1 -> 2.1.3)
  5. 提升 Glide 到 v4.0.0 ,注意 v4.0.0 后不需要在 AndroidManifest 中声明 GlideModulemeta-data
  6. 提升 ButterKnife 到 v8.8.1,注意 v8.8.0 后需调用 ButterKnife.setDebug(true) (建议在 AppLifecycles#onCreate(Application) 中调用),ButterKnife 才会打印提示日志
  7. 更名 UiUtilsArtUtils
  8. 更名 CharactorHandlerCharacterHandler
  9. 更名 GlideImageConfigImageConfigImpl ,建议在项目中自行实现 BaseImageLoaderStrategyImageConfig 替换现有策略,因为默认提供的 GlideImageLoaderStrategy 只是为了快速使用 Glide ,实现比较简单,如果遇到复杂场景将无能为力,我为什么设计 ImageLoader ? 感觉比直接调用 Glide 复杂多了? 如果你直接使用 Glide 请求图片,当等你从 Glide v3.0 升到 v4.0 (或者更换图片请求框架)时,看着满项目报的红,你就知道为什么我要多封装一层,而不是直接调用
  10. 增加 GlideAppliesOptions 接口,帮助 BaseImageLoaderStrategy 扩展 Glide 的自定义配置
  11. 增加 IRepositoryManager#getContext() 方法
  12. 增加 ArtUtils#obtainAppComponentFromContext(Context) 方法,可直接从 Context 获取 AppComponent ,避免频繁强转
  13. 移动 imageloader 包,到 http 包下
  14. 修复 BaseHolder 中强行使用 AutoLayoutBug
  15. 优化 Demo UserModel 中,请求数据的逻辑

2.1.6

Choose a tag to compare

@JessYanCodingJessYanCoding released this 01 Aug 04:40
  1. 优化ClientModule
  2. 优化一些不规范的类名
  3. 优化 BasePresenter
  4. 优化 Demo , doAfterTerminate() 改为 doFinally()

2.1.5-rx2

Choose a tag to compare

@JessYanCodingJessYanCoding released this 23 Jul 12:08
  1. 改善 AppDelegate 结构,使 AppDelegate.Lifecycle 改名为 AppLifecycles
  2. 增加 AppLifecycles#attachBaseContext(Context) 方法,可以做一些 MultiDex 的初始化和插件化框架等框架的初始化,在 ConfigModule#injectAppLifecycle(Context, List) 中使用
  3. 增加 项目启动后仍可以改变 RetrofitBaseUrl 的功能,详情请查看 DemoGlobalConfiguration
  4. 增加 RequestInterceptor 可控制日志打印等级的功能,可使用 GlobalConfigModule.Builder#printHttpLogLevel(RequestInterceptor.Level) 控制框架 Http 信息打印的级别
  5. 增加 RepositoryManager#clearAllCache() 方法,可清理 RxCache 中的所有缓存
  6. 修复 Demo 中出现 Fragment 内存泄漏的问题
  7. 优化当使用者在 XML 中使用 标签,静态生成 Fragment 时出现的兼容问题
  8. 优化 proguard-rules.pro
  9. 优化 GlobalConfiguration 中 配置 ToolBar 的模块,为了提高 Fragment 的兼容性,将逻辑从 onActivityCreated 移动到 onActivityStarted
  10. 优化 Demo 中配置 Timber 部分,使使用者可以将 MVPArms 的日志打印框架随意切换到 Logger 或其他日志打印框架
  11. 优化 RequestInterceptor ,使框架 Http 日志打印,可解析 XML 格式的结果
  12. 优化 AppManager#getCurrentActivity() 方法,降低值为 null 的概率
  13. 提升 框架所使用的部分三方库的版本
  14. 提升 Support-Libraryv25.4.0 ,注意需要在根目录的 build.gradle 中加入:
 allprojects {
     repositories {
         jcenter()
         maven { url "https://maven.google.com" }
     }
 }

2.1.0-rx2

Choose a tag to compare

@JessYanCodingJessYanCoding released this 15 Jun 08:58
  1. ProgressManager 一行代码监听 App 中所有网络链接的上传以及下载进度,以及 Glide 加载进度
  2. RxErrorHandler 升级为 2.0.2 ,优化 GlobalConfigurationresponseErrorListener 错误处理细节
  3. 优化 ClientModuleGlobalConfigModuleDagger 注入方式
  4. 规范一些方法的方法名,发现方法找不到,可能是改了方法名,大部分只是把方法名首字母改为小写
  5. 优化 PermissionUtil ,请参照 UserPresenter 中请求权限的写法
  6. 优化 proguard-rules.pro 规则
  7. 优化 App 出现 onLowMemory 时的应对策略
  8. 优化 AdapterViewPager
  9. 优化 AppManager
  10. v2.1.0 之后,本框架并不强制你使用 AutoLayout,如果你不想使用 AutoLayout,就不要配置
  11. AndroidManifest 中的 meta-data,并保证项目中没有使用 AutoView
  12. 优化 RequestInterceptor ,使打印日志更加智能准确
  13. ActivityLifecycle 不再主动注销 FragmentLifecycle ,Activity 销毁时会自动注销
  14. 优化 dependencies 的结构,去除框架对 cardview-v7 的直接依赖

2.0.4-rx2

Choose a tag to compare

@JessYanCodingJessYanCoding released this 26 May 04:07
  1. IActivityIFragmentinitView() , initData() 改为 initView(Bundle) , initData(Bundle) 针对需要在 Activity 被重建时恢复数据的情况 (请使用全局替换减少更新的成本) ,以及更新 MVP_generator_solution 模版
  2. 优化 AppManager#getCurrentActivitynull 的情况
  3. 升级一些三方库以及 buildToolsVersion 的版本
  4. 优化 Demo 返回键的图标