Skip to content
A flexible, powerful and lightweight plugin framework for Android
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
SdkLibrary fix #4, correct the flag for different Context Oct 9, 2018
docs
gradle/wrapper submit source code of iqiyi plugin framework Sep 20, 2018
neptune-gradle fix AGP 3.2 compile issue for neptune-gradle, project manifest file p… Oct 19, 2018
samples provide tools to obtain plugin's ApplicationInfo and meta info Oct 9, 2018
screenshots submit source code of iqiyi plugin framework Sep 20, 2018
.gitignore
LICENSE update LICENSE file Sep 20, 2018
README.md Fix typo Sep 27, 2018
README_CN.md fix README license link error Sep 21, 2018
build.gradle submit source code of iqiyi plugin framework Sep 20, 2018
gradle.properties submit source code of iqiyi plugin framework Sep 20, 2018
gradlew submit source code of iqiyi plugin framework Sep 20, 2018
gradlew.bat submit source code of iqiyi plugin framework Sep 20, 2018
plugin_arch.png submit source code of iqiyi plugin framework Sep 20, 2018
settings.gradle submit source code of iqiyi plugin framework Sep 20, 2018

README.md

Neptune

license Release Version PRs Welcome

Neptune is a flexible, powerful and lightweight plugin framework for Android.

It now runs plugins dynamically on billions of devices every day and carries many separated business modules of IQIYI such as Reader, Movie Tickets and etc..

Especially, Neptune is greatly compatible with Android P . It can run on Android P devices seamlessly and stably. Only few APIs in light greylist are used.

中文文档

Supported Features

Feature Detail
Supported Components Activity/Service/Receiver
Component registration in Host Manifest.xml No Need
Share Host App Class Supported
Share Host App Resources Supported
Resources Isolation Supported
Run individual App Supported
Android Features Almost all features
Compatibility Almost all roms
Process Isolation Supported
Plugin Dependency Supported
Plugin Development like normal app
Supported Android versions API Level 14+

Architecture

plugin_arch

Getting Started

Host Project

compile Neptune in application module of build.gradle.

    implementation 'org.qiyi.video:neptune:2.5.0'

Initialize sdk in your Application#onCreate().

public class XXXApplication extends Application {
    
    @Override
    public void onCreate() {
        NeptuneConfig config = new NeptuneConfig.NeptuneConfigBuilder()
                    .configSdkMode(NeptuneConfig.INSTRUMENTATION_MODE)
                    .enableDebug(BuildConfig.DEBUG)
                    .build();
        Neptune.init(this, config);
    }
}

more details and developer guide see wiki

Plugin Project

If plugin app wants to share resources with host app, you need add dependency in the buildscript block of build.gradle in root of plugin project as following.

dependencies {
    classpath  'com.iqiyi.tools.build:neptune-gradle:1.1.6'
}

Apply gradle plugin in application module of build.gradle and config it.

apply plugin: 'com.qiyi.neptune.plugin'

neptune {
    pluginMode = true      // In plugin apk build mode
    packageId = 0x30       // The package id of Resources
    hostDependencies = "{group1}:{artifact1};{group2}:{artifact2}" // host app resources dependencies
}

Developer Guide

Contribution

We sincerely appreciate your PR contribution of any kind , including codes, suggestions or documentation to improve our project.

License

Neptune is Apache v2.0 Licensed.

You can’t perform that action at this time.