Qigsaw是一套基于Android App Bundles实现的Android动态组件化方案,它无需应用重新安装即可动态分发插件。
在你项目根目录下的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?在开发过程中,您可以运行qigsawAssembleDebug
task或者直接点击Android Studio的Run
按钮进行构建。发布时,使用qigsawAssembleRelease
task构建。
Qigsaw支持插件热修复,具体操作可以参考更新指南Qigsaw插件更新指南。
- 插件无法更新AndroidManifest.xml,例如新增四大组件等。
- 无法动态更新base APK。
- 插件不支持增量更新。
- 不支持低于4.0的Android系统版本。
- 其他更多已知问题请参考Android App Bundles。
Qigsaw提供一些Android App Bundle中未支持的功能。
-
支持初始化插件Application,创建插件Application实例并调用
Application#attachBaseContext
和Application#onCreate
方法。 -
支持动态加载插件ContentProvider。
-
从qigsaw-sample中可了解更多信息。
-
查看Wiki或FAQ以获取帮助。
-
邮箱联系,kissonchen@qiyi.com。
-
加入QQ群了解最新信息。
更多关于贡献、issues或PR等信息,请您查阅Qigsaw贡献指南。
Qigsaw授权条约为MIT license,请您查阅LICENSE以获取更多信息。