Skip to content

Latest commit

 

History

History
98 lines (69 loc) · 2.74 KB

README_CN.md

File metadata and controls

98 lines (69 loc) · 2.74 KB

Neptune

license Release Version PRs Welcome

Neptune是一套灵活,稳定,轻量级的插件化方案。

它现在每天在数亿的设备上动态加载和运行插件,支撑着爱奇艺许多独立业务模块的需求和发展,如爱奇艺文学,电影票等。

Neptune现在完全兼容Android P系统,可以在Android P设备上稳定且无缝地运行。框架只使用了少数几个浅灰名单中的API。

支持的特性

特性 描述
组件 Activity/Service/Receiver
主程序Manifest注册 不需要
共享宿主代码 支持
共享宿主资源 支持
资源隔离 支持
独立运行插件 支持
Android特性 支持几乎所有
兼容性 几乎市面上所有ROM
进程隔离 支持
插件之间相互依赖 支持
插件开发 接近原生APP开发
支持的Android版本 API Level 14+

Architecture

plugin_arch

Getting Started

Host Project

在App模块的build.gradle中compile移入Neptune库

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

Application#onCreate()阶段初始化Neptune

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);
    }
}

更多细节和开发指南请参考wiki。

Plugin Project

如果插件APP需要共享宿主APP的一些资源,你需要在插件工程根目录下的build.gradle中的buildscript块中添加如下依赖

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

在App模块的build.gradle中应用gradle插件并添加相应配置

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

我们真诚地欢迎任何有价值的PR提交,包括代码,建议和文档。

License

Neptune is Apache v2.0 Licensed.