Qigsaw

🔥🔥Qigsaw ['tʃɪɡsɔ] is a dynamic modularization library which is based on Android App Bundles(Do not need Google Play Service). It supports dynamic delivery for split APKs without reinstalling the base one.

OTHER License

Stars
1.7K

Bot releases are hidden (Show)

Qigsaw - v1.4.1-hotfix01(Bug fix for 1.4.1) Latest Release

Published by kissonchan about 4 years ago

  1. 修复插件热更新打包过程中,无法生成版本号变动插件的记录。
Qigsaw - v1.4.0-hotfix03(Bug fix for 1.4.0)

Published by kissonchan about 4 years ago

  1. 修复插件热更新打包过程中,无法生成版本号变动插件的记录。
Qigsaw - v1.4.1(适配AGP 4.0)

Published by kissonchan about 4 years ago

  1. 适配 Android Gradle Plugin 4.0。
  2. 优化插件资源加载速度。
  3. 重构插件加载部分逻辑。
  4. 针对LG、Sony特殊机型资源加载异常做保护处理。
  5. 提供新 API Qigsaw.preloadInstalledSplits(Collection splitNames) 用于开发者控制 App 启动阶段何时加载已安装插件。具体使用参考QigsawApplication
Qigsaw - v1.4.0-hotfix02 (Bug fix for v1.4.0)

Published by kissonchan over 4 years ago

  1. 解决Qigsaw-Gradl-Plugin编译过程中,插件工作进程信息设置错误问题。
Qigsaw - 【v1.4.0重磅推出】支持APK基于ABI维度进行拆分等

Published by kissonchan over 4 years ago

  1. 随着国内越来越多应用商店需要上传64位APK,Qigsaw在1.4.0版本支持Base APk和Split APKs基于ABI维度拆分ABI。Qigsaw会依据当前应用运行的CPU架构环境选择对应Split APKs下载。
  2. 支持Base APK中Activity使用Split APKs中Fragment或Resources。
  3. 不再强制要求启动编译命令中包含qigsawAssemble${variantName.capitalize()}。
  4. 其他bug fix请参考commit提交。

关于1.4.0新功能更多细节请参考1.4.0更新说明

Qigsaw - v_1.3.3.1(Bug fix for v_1.3.3)

Published by kissonchan over 4 years ago

  1. 修复issue: https://github.com/iqiyi/Qigsaw/issues/21
  2. 通过反射方式调用插件Application的onCreate方法,避免主dex方法数超标问题。
  3. 修复某些场景下(比如集成新版Tinker)ClassLoader类型转换错误导致插件插件启动异常。详见https://github.com/iqiyi/Qigsaw/commit/0a34dd503b4d95121a67016b7abd74321f10498f
Qigsaw - v_1.3.3

Published by kissonchan over 4 years ago

  1. 迁移至AndroidX。
  2. 调整SplitInstallReporter插件安装结果通知逻辑,无论是否首次安装均会回调,SplitBriefInfo新增installFlag来获取是否首次安装。
  3. 适配Android Gradle Plugin 3.6.0+。
  4. 修复vivo&oppo手机会偶现libart.so崩溃,增加oat文件格式校验,防止oat文件是损坏的。
  5. 其他bug fix,详见commits。
Qigsaw - v_1.3.2.2(Bug fix for v_1.3.2)

Published by kissonchan over 4 years ago

  1. 修复Android 4.4.x 资源加载偶现崩溃。
  2. 去除Android Support中support-core-utils的使用,仅保留annotation库的使用。
  3. qigsaw-gradle-plugin去除Javassist依赖。
  4. 其他问题修复,详见commits。
Qigsaw - v_1.3.2

Published by kissonchan over 4 years ago

  1. 修复某些情况下,旧插件信息文件未删除问题。
  2. Multiple-ClassLoader模式下,优化类查找速度,并实现插件ClassLoader之间findResources相关逻辑。
  3. 若当前App版本中某一插件已安装,Qigsaw将不再通知安装结果。
  4. 打包过程中,若插件版本号未变更,不再重复上传操作。
  5. 其他已知问题修复。
Qigsaw - 提供插件删除、插件依赖自动安装等重磅功能

Published by kissonchan over 4 years ago

  1. 完成插件延时删除功能。
  2. 提供插件依赖自动分析及安装功能。比如插件A依赖B,当插件A被安装,那么插件B会被自动安装。
  3. 提供 task qigsawUploadSplit${variantName}用于插件上传后处理。比如您生成的base apk且所有插件均内置其中,使用qigsawUploadSplit${variantName}可处理base apk中所有内置插件(onDemand属性)上传过程,最后生成新的base apk。需配置qigsawSplit的"oldApk"和"use7z"。
Qigsaw - Qigsaw-Gradle-Plugin 优化及 bug 修复等

Published by kissonchan almost 5 years ago

  1. Qigsaw-Gradle-Plugin 适配增量编译问题。
  2. Qigsaw-Gradle-Plugin 提供 qigsawInstall${variantName} 命令,通过该命令可以安装 qigsaw 生成的APK。
  3. Qigsaw-Gradle-Plugin 插件升级流程体验优化。
  4. 提供 Qigsaw#registerSplitActivityLifecycleCallbacks 方法,可监听插件 Activity 生命周期回调。接入方通过该接口可以统计插件DAU。
  5. Qigsaw-Gradle-Plugin 若干 bug 修复。
Qigsaw - 【重要】Qigsaw-Gradle-Plugin 兼容性适配及 Bug 修复!

Published by kissonchan almost 5 years ago

  1. Qigsaw-Gradle-Plugin 适配增量编译问题。
  2. Qigsaw-Gradle-Plugin 提供 qigsawInstall${variantName} 命令,通过该命令可以安装 qigsaw 生成的APK。
  3. Qigsaw-Gradle-Plugin 提升插件升级体验。
  4. 提供 Qigsaw#registerSplitActivityLifecycleCallbacks 方法,可监听插件 Activity 生命周期回调。接入方通过该接口可以统计插件DAU。
  5. Qigsaw-Gradle-Plugin 其他 bug 修复。
  1. qigsaw-build-plugin 支持 Flavor 配置。
  2. 优化字节码注入任务(SplitResourcesLoaderTransform),大幅减少时间占用。
  3. 自动生成 ${yourApplicationId}.QigsawConfig.java 文件记录 qigsaw-core 所需信息。请将该类配置在主dex中
  4. 移除 SplitConfiguration 中 manifestPackageName 配置,改由自动配置。
  5. 其他相关 bug 修复。
Qigsaw - 修复Reporter日志输出异常

Published by kissonchan almost 5 years ago

修复Reporter日志输出导致的异常,详见:018fbb9

Qigsaw - Reporter失败通知逻辑调整等

Published by kissonchan almost 5 years ago

  1. SplitInstallReporter 和 SplitLoadReporter 失败通知,包含已加载或安装成功的插件数据。
  2. 应 Qigsaw 接入者需求,增加是否校验插件签名配置。详情参考 SplitConfiguration 中 verifySignature 配置。
Qigsaw - 内置插件功能升级、Reporter相关接口变更(开发者需适配)等

Published by kissonchan almost 5 years ago

  1. 修复多ClassLoader模式,插件Application可能未初始化的问题。
  2. 插件多ABI支持,依据用户当前设备CPU架构及APK自身ABIs来加载对应插件ABI的Native Library。
  3. 依据项目工程NDK配置以及APK文件lib目录的ABI类型,来自动选择内置插件存放APK lib还是assets目录。内置插件存放APK lib目录可减少插件一次拷贝工作,节省用户磁盘空间。
  4. Qigsaw Gradle Plugin 修复3.2~3.5兼容性bug。
  5. 调整Report相关接口,包括SplitLoadReporter、SplitInstallReporter等,提供更多插件信息供开发者投递。
Qigsaw - 优化Multiple-ClassLoader方案实现逻辑

Published by kissonchan almost 5 years ago

  1. 优化Multiple-ClassLoader方案实现逻辑,包括打包插件相关逻辑。
  2. 更多详情参考1.1.5-rc01
Qigsaw - 【重要】适配Android Q等

Published by kissonchan about 5 years ago

  1. 适配Android Q,解决插件无法安装问题。
  2. 提供单类加载器和多类加载器两种方式加载插件,开发者依据需要进行配置。120a309
  3. 修复Target Api 28 且 Android OS为8的“Only fullscreen opaque activities can request orientation”问题。
  4. 针对Android 4.x,采用新的插件资源加载方式。详见5f01790
  5. 优化Qigsaw初始化时间,Qigsaw.install()方法已降至10ms以下。
  6. AGP 3.5.0以上版本去除dex remerge操作。详见842de9d
Qigsaw - Bugfix & ChangeLog

Published by kissonchan about 5 years ago

  1. Qigsaw-Gradle-Plugin增加插件间依赖自动分析,被依赖的插件将会被优先加载。
  2. 支持用户确认框样式自定义(蜂窝网络情况下,当下载插件大小超过设定阈值,将会弹出用户确认框)。
  3. SplitInstallManager提供startConfirmationDialogResult接口,对其Play Core Library。
  4. 采用全新方式加载插件ContentProvider,0 私有API调用。解决oppo、vivo机型覆盖安装时候出现插件ContentProvider找不到异常(仅出现一次)。
  5. SplitLoadReporter行为变更,更多详情请参考SplitLoadReporter类。
  6. 加载插件限定仅在主线程进行。
  7. 提供配置选项,供开发者选择是否在Application#onCreate阶段加载所有已安装插件。
  8. 其他bug fix。
Related Projects