Releases: Qihoo360/RePlugin
v3.0.0
v2.3.4
v2.3.3
要解决的问题 Describe the problem to be solved
- Gradle新版Task兼容provider的方式消除warning。(gradle-5.4.1)
- 编译插件 com.android.tools.build:gradle支持3.6.0-alpha01, 解决宿主无法生成PluginBuiltinJson;
- 插件的ContentProvider支持多个接口:openInputStream/openOutputStream/notifyChange等等。
- 解决宿主编译时在Manifest插入坑位失败问题。
要解决的Issue编号(可多个) Associated issue number (multiple)
已在多个 gradle 和 Android build 插件的组合测试通过
组合列表
gradle android build gradle
gradle-2.14.1 com.android.tools.build:gradle:2.1.3
gradle-3.3 com.android.tools.build:gradle:2.3.3
gradle-4.10.2 com.android.tools.build:gradle:2.3.3
gradle-5.3.1 com.android.tools.build:gradle:3.4.1
gradle-5.4.1 com.android.tools.build:gradle:3.6.0-alpha01关联
提交:
issue:
v2.3.2
Breaking Changes 核心改动
- Gradle sync failed: No signature of method: com.android.build.gradle.internal.scope.VariantScopeImpl.getMergeAssetsTask() is applicable for argument types: () values: [] #640
Main Changes 主要更新
Bug Fixes 修复错误
-
0d4267d 修复 PluginInfo 可能出现 ConcurrentModification
-
fix when jar does not exist in repacage then pass #682
- No signature of method: com.android.build.gradle.internal.scope.VariantScopeImpl.getMergeAssetsTask() is applicable for argument types: () values: [] #646
- repackage 过程中文件夹路径找不到...\debug\25 does not exist(解决方案) #576
- app\build\intermediates\transforms\desugar\release\39 does not exist. #628
- /build/intermediates/transforms/desugar/debug/25 does not exist. #627
v2.3.1
replugin-host-lib
Breaking Changes 核心改动
1.针对Replugin的性能做了大量的优化。
2.部分代码逻辑重构。
3.Replugin相关的ANR率下降98%,秒级以上的卡顿问题基本消除。
Main Changes 主要更新
一键上传多个库到jcenter()
一键使用当前最新版本编译所有的Sample
一套脚本管理所有源码库和Sample中的版本号
Bug Fixes 修复错误
- (#682) Fixed a few bug - @YuTianTina
v2.3.0
v2.2.4
replugin-host-lib
Breaking Changes 核心改动
为了适配 Android 8.1 及后续版本,PluginContext#getDatabasePath() 方法不再重写,因此,在开发中,需要各插件之间约定,防止出现重名数据库。
在多进程加载多个插件时,所有元素都需要做到进程隔离
适配 Android O 的 odex 文件目录变化
优化了 PluginInfo 类的 clone( )实现,完善了插件升级,同版本覆盖,卸载等逻辑
处理了“某插件连续性升级N次”这个场景。
Main Changes 主要更新
replugin-plugin-lib
Main Changes 主要更新
将插件 lib 中的 PluginInfo 对象与宿主 lib 同步
replugin-sample
增加了在插件中使用 Notification 的示例
v2.2.2
replugin-host-lib
Breaking Changes 核心改动
ART虚拟机,首次加载插件时提速(可选功能,默认关闭,后续会继续迭代)
支持在插件中使用PreferenceActivity
Main Changes 主要更新
- (#459) Support FileProvider - @cundong
- (#403) Adapter p-n plugin's override logic - @cundong
- (#379 ) Add getVersion, dump Api for plugin project - @cundong
- (#400 ) Refactoring PLuginInfo's clone logic - @cundong
- (#399 ) Optimization PluginProviderClient - @cundong
Bug Fixes 修复错误
replugin-plugin-gradle
Main Changes 主要更新
replugin-plugin-lib
Main Changes 主要更新
支持在插件中使用PreferenceActivity
Bug Fixes 修复错误
- **(#384) 修复因CancellationSignal引起的,在Android 4 上的崩溃- @ChrisCheng4j
replugin-sample
增加了一个基础功能插件-weiview插件,大家可以参照该插件,自己封装「用户中心」「登录」「网络」「加密协议」「数据打点」等基础插件,实现独立开发,独立升级。
增加Fresco的最佳使用示例,详情参考:Fresco在RePlugin中的最佳实践
完善Fragment使用示例。
v2.2.1
replugin-host-lib
Breaking Changes 核心改动
适配Android O 的“全时段的编译”(All-Of-the-Time compilation)
支持通过 RePlugin.dump() 接口来dump详细的运行时信息,包括:
- 通过 RePlugin 运行起来的,插件中的Service 信息;
- 当前完整的 Activity 坑位映射表;
- 当前被运行起来的插件列表;
Main Changes 主要更新
- (#368) 完善插件卸载逻辑 - @SkyEric
- (#307) 完善插件同版本覆盖逻辑" - @kevinfen9
- (#327) Improve the implementation of the Service logic" - @cundong
- (#312) Make RePlugin.registerHookingClass() stronger" - @cundong
Bug Fixes 修复错误
v2.2.0
replugin-host-lib
Breaking Changes 核心改动
- (#296) Support "UI process" as a plug-in management process - @jiongxuan
支持以“UI进程”作为插件管理进程。换言之,可以做到“仅一个进程”就能开启插件。有关“插件管理进程”的详述,请点击这里查看《插件的管理》中“插件管理进程”一节。
补充:在RePlugin 2.1.7及以前版本,必须要开启“两个进程”(分别为当前进程和“常驻进程”),这也是出于性能和插件管理角度考虑。如今仅需要一个进程即可。
完美支持 Android 4.4 及以下的插件的MultiDex(分包技术)的支持。
补充:主程序MultiDex一直都是“天然支持的”。而在RePlugin 2.1.7及以前版本,仅支持 Android 5.0 及以上版本的插件的MultiDex
支持“动态分配进程坑位”方案,无需“填写Meta-data来分配进程”即可。有关进程坑位的信息,请参见《插件的组件》中“多进程坑位”一节。
补充:在RePlugin 2.1.7及以前版本,常驻进程名不能修改,只可以为“[主程序包名]:GuardService”。从该版本开始,不仅可以修改常驻进程名,还可以选择“关闭常驻进程”
Main Changes 主要更新
- (#287) Support for custom persistentName - @cundong
- (#290) Added "Fetch ResourceId/View in other plugins" - @jiongxuan
Bug Fixes 修复错误
- (#285) Fixed the installation will fail when you install the same version of the plug-in multiple - @jiongxuan
- (#286) Resolved the issue of "Overwriting the plug-in, it may not be notified to other processes" - @jiongxuan
- (#294) 解决P-n插件升级为“新插件”的问题 - @kevinfen9
Mirror Changes 精致优化
- (#279) Set RePluginClassLoader to Thread's ContextClassLoader - @jiongxuan
- (#302) Modify the number of translucent singleInstance Activity - @cundong
- (#300) The return value of the fetchViewByLayoutName method is changed to "generic" - @jiongxuan
- (#284) Remove unused files - @cundong
replugin-host-gradle
Main Changes 主要更新
Mirror Changes 精致优化
- (#296) Added the PERSISTENT_ENABLE field, and adjust the "android:process" field in host's AndroidManifest - @jiongxuan
- (#302) Modify the number of translucent singleInstance Activity - @cundong
replugin-plugin-lib
Mirror Changes 精致优化
- (#290) Added the RePluginCompat class to be compatible with the old host-lib - @jiongxuan
- (#290) Added RePlugin.fetchResourceIdByName/fetchViewByLayoutName in plugin-lib - @jiongxuan