Skip to content

Latest commit

 

History

History
94 lines (58 loc) · 3.84 KB

README.zh-CN.md

File metadata and controls

94 lines (58 loc) · 3.84 KB

Qigsaw

Qigsaw是一套基于Android App Bundles实现的Android动态组件化方案,它无需应用重新安装即可动态分发插件。

Qigsaw应用分发流程

开始

在你项目根目录下的build.gradle文件中增加qigsaw-gradle-plugin作为依赖。

buildscript {
    dependencies {
        classpath 'com.iqiyi.android.qigsaw:gradle-plugin:1.4.1-hotfix01'
    }
}

接着在app/build.gradle文件中应用如下所示插件和依赖。

dependencies {
    //qigsaw core lib
    implementation "com.iqiyi.android.qigsaw:splitcore:1.4.1-hotfix01"
}
...
...
apply plugin: 'com.iqiyi.qigsaw.application'

最后在dynamicfeature/build.gradle文件中应用如下所示插件。

apply plugin: 'com.iqiyi.qigsaw.dynamicfeature'

考虑到每个应用程序都有自己的下载器,qigsaw只提供下载接口,交由接入方实现。从SampleDownloader示例中了解更多信息。

Qigsaw-gradle-plugin会在编译期间上传需要动态加载的split APK,因此您必须实现SplitApkUploader才能将split APK上传到您的CDN服务器。从SampleSplitApkUploader示例中了解更多信息。

如何安装qigsaw?从QigsawApplication示例中了解更多信息。

关于proguard,我们通过qigsaw-gradle-plugin自动生成proguard配置。

关于multiDex,从示例multidexkeep.pro中了解更多信息。

有关更多qigsaw配置,从示例app/build.gradle中了解更多信息。

如何安装split APK?Qigsaw提供了与Play Core Library相同的API ,因此您可以参阅Google开发者文档来进行安装。

如何构建base APK和split APK?在开发过程中,您可以运行qigsawAssembleDebugtask或者直接点击Android Studio的Run按钮进行构建。发布时,使用qigsawAssembleReleasetask构建。

Qigsaw支持插件热修复,具体操作可以参考更新指南Qigsaw插件更新指南

已知问题

  1. 插件无法更新AndroidManifest.xml,例如新增四大组件等。
  2. 无法动态更新base APK。
  3. 插件不支持增量更新。
  4. 不支持低于4.0的Android系统版本。
  5. 其他更多已知问题请参考Android App Bundles

功能拓展

Qigsaw提供一些Android App Bundle中未支持的功能。

  1. 支持初始化插件Application,创建插件Application实例并调用Application#attachBaseContextApplication#onCreate方法。

  2. 支持动态加载插件ContentProvider。

支持

  1. 从qigsaw-sample中可了解更多信息。

  2. 查看Wiki或FAQ以获取帮助。

  3. 邮箱联系,kissonchen@qiyi.com

  4. 加入QQ群了解最新信息。

qigsaw_qq_group_chat

贡献

更多关于贡献、issues或PR等信息,请您查阅Qigsaw贡献指南

许可

Qigsaw授权条约为MIT license,请您查阅LICENSE以获取更多信息。