Neptune

A flexible, powerful and lightweight plugin framework for Android

Github星跟蹤圖

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.7.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.4.0'
}

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.

主要指標

概覽
名稱與所有者iqiyi/Neptune
主編程語言Java
編程語言Java (語言數: 2)
平台
許可證Apache License 2.0
所有者活动
創建於2018-09-19 15:26:14
推送於2019-08-19 14:13:43
最后一次提交2019-08-19 22:13:32
發布數1
最新版本名稱2.5.0 (發布於 )
第一版名稱2.5.0 (發布於 )
用户参与
星數764
關注者數37
派生數113
提交數17
已啟用問題?
問題數30
打開的問題數11
拉請求數1
打開的拉請求數0
關閉的拉請求數0
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?