All Projects → iqiyi → Qigsaw

iqiyi / Qigsaw

Licence: other
🔥🔥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.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Qigsaw

Dynamictypesupportinswift
An easy control which support dynamic typing for both system and custom fonts. Dynamic type is changing the font size of your app when user changes the font size of system from the settings.
Stars: ✭ 12 (-98.97%)
Mutual labels:  dynamic
Django Access
Django-Access - the application introducing dynamic evaluation-based instance-level (row-level) access rights control for Django
Stars: ✭ 47 (-95.96%)
Mutual labels:  dynamic
Dyci Main
Dynamic Code Injection Tool for Objective-C
Stars: ✭ 1,103 (-5.08%)
Mutual labels:  dynamic
Hr4r
Example project - "Hot Reloading 4 RequireJS" front-end web applications & some extra code demonstrating hot-reloading for Node.js Express servers
Stars: ✭ 28 (-97.59%)
Mutual labels:  dynamic
Dynamic Data Source Demo
基于事务的读写分离
Stars: ✭ 43 (-96.3%)
Mutual labels:  dynamic
Kendogridbinderex
This is a ModelBinder designed to consume an http request and build a json serializable object for the Kendo UI Grid datasource. AutoMapper is used to support mapping from ViewModel <> Entity.
Stars: ✭ 52 (-95.52%)
Mutual labels:  dynamic
Dynamic widget
A Backend-Driven UI toolkit, build your dynamic UI with json, and the json format is very similar with flutter widget code.
Stars: ✭ 851 (-26.76%)
Mutual labels:  dynamic
Console Based Projects C
All projects are console based💻 and developed using C📚.All projects are dynamic and developed with the concept of Advance data structure 📁(Dynamic memory allocation,Linkedlist,Stack,Queue,Tree)✏️
Stars: ✭ 67 (-94.23%)
Mutual labels:  dynamic
Apkupdater
APKUpdater is an open source tool that simplifies the process of finding updates for your installed apps.
Stars: ✭ 1,028 (-11.53%)
Mutual labels:  play
Lypaymentfield
多种风格的支付框控件,可定制加密图片,也可使用带动画的弹窗。A variety of styles of payment box controls can be customized to encrypt pictures, can also be used with animated alert.
Stars: ✭ 58 (-95.01%)
Mutual labels:  dynamic
Rapidview
RapidView is an android ui and lightapp development framework
Stars: ✭ 951 (-18.16%)
Mutual labels:  dynamic
Plant
Trait-Driven Models of Ecology and Evolution 🌲
Stars: ✭ 39 (-96.64%)
Mutual labels:  dynamic
Mgs Skinnedmesh
Unity plugin for create flexible hose in scene.
Stars: ✭ 58 (-95.01%)
Mutual labels:  dynamic
Redux Dynamic Modules
Modularize Redux by dynamically loading reducers and middlewares.
Stars: ✭ 874 (-24.78%)
Mutual labels:  dynamic
Horope
Generates dynamic rope setup from spline. c4d python plugin.
Stars: ✭ 61 (-94.75%)
Mutual labels:  dynamic
System.linq.dynamic.core
The .NET Standard / .NET Core version from the System Linq Dynamic functionality.
Stars: ✭ 864 (-25.65%)
Mutual labels:  dynamic
Atlas
A powerful Android Dynamic Component Framework.
Stars: ✭ 8,028 (+590.88%)
Mutual labels:  dynamic
Frost Dev
Fast Robot Optimization and Simulation Toolkit (FROST)
Stars: ✭ 67 (-94.23%)
Mutual labels:  dynamic
Dynamic Datasource Starter
springboot 动态切换数据的基本思想与实现方法
Stars: ✭ 63 (-94.58%)
Mutual labels:  dynamic
Terraform Aws Multi Az Subnets
Terraform module for multi-AZ public and private subnets provisioning
Stars: ✭ 58 (-95.01%)
Mutual labels:  dynamic

Qigsaw

Qigsaw is a dynamic modularization library which is based on Android App Bundles. It supports dynamic delivery for split APK without reinstalling the base one.

README 中文版

qigsaw

Getting started

Import qigsaw-gradle-plugin as a dependency in your main build.gradle in the root of your project:

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

Then "apply" the plugin and import dependencies by adding the following lines to your app/build.gradle.

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

At Last, "apply" another plugin by adding the following lines to your dynamicfeature/build.gradle.

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

Considering that every app has its own downloader, qigsaw just provides an interface Downloader and you are expected to implement it. Learn more from the sample SampleDownloader.

Qigsaw-gradle-plugin will upload split APKs which require dynamic delivery during compilation, so you have to implement SplitApkUploader to upload split APKs to your own CND server. Learn more from the sample SampleSplitApkUploader.

How to install qigsaw? Learn more from the sample QigsawApplication.

For proguard, we have already made the proguard config automatically via qigsaw-gradle-plugin.

For multiDex, learn more from the sample multidexkeep.pro.

For more qigsaw configurations, learn more from the sample app/build.gradle.

How to install split APKs? Qigsaw provides the same APIs to Play Core Library, so you may read google developer docs to install.

How to build base and split APKs? During development, you may use qigsawAssembleDebug task or just click Run app in Android Studio to build. When releasing your app, use qigsawAssembleRelease task to build.

How to update splits? Please see our Split Update Guide.

Known Issues

There are some issues which Qigsaw can't update or support at present.

  1. Can't update split AndroidManifest.xml dynamically, for example adding Android Component.
  2. Can't update base APK dynamically.
  3. Doesn't support Android OS version lower than 4.0.
  4. Doesn't support incremental update for split APK.
  5. Learn more from the Known issues about Android App Bundle.

Extensive Functions

Qigsaw supports some functions which Android App Bundle doesn't yet.

  1. Supports to declare Application in split AndroidManifest. Qigsaw will invoke Applicaton#attachBaseContext and Applicaton#onCreate methods for split application.
  2. Supports to declare ContentProvider in split AndroidManifest.

Support

  1. Learn more from qigsaw-sample-android.
  2. Study the source code.
  3. Check wiki or FAQ for help.
  4. Contact us [email protected].
  5. Join QQ group chat.

qigsaw_qq_group_chat

Contributing

For more information about contributing, issues or pull requests, please check our Qigsaw Contributing Guide.

License

Qigsaw is MIT licensed. Read the LICENSE file for detail.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].