12 Star 36 Fork 11

Gitee 极速下载 / Qigsaw

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/iqiyi/Qigsaw
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

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以获取更多信息。

Copyright (c) 2019-present, iQIYI, Inc. All rights reserved. Most source code in Qigsaw are MIT licensed. A copy of the MIT License is included in this file. Terms of the MIT License ======================== Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

Qigsaw 是爱奇艺自主研发的动态化框架,其核心优势如下: 利用 Android App Bundle 开发套件,极速开发体验 展开 收起
Java 等 4 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/mirrors/Qigsaw.git
git@gitee.com:mirrors/Qigsaw.git
mirrors
Qigsaw
Qigsaw
master

搜索帮助