All Projects → iqiyi → Neptune

iqiyi / Neptune

Licence: apache-2.0
A flexible, powerful and lightweight plugin framework for Android

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Neptune

Flexml
🚀基于Litho的Android高性能动态业务容器。
Stars: ✭ 225 (-68.27%)
Mutual labels:  lightweight, dynamic
Lwmem
Lightweight dynamic memory manager library for embedded systems with memory constraints. It implements malloc, calloc, realloc and free functions
Stars: ✭ 92 (-87.02%)
Mutual labels:  lightweight, dynamic
Astroid
A graphical threads-with-tags style, lightweight and fast, e-mail client for Notmuch
Stars: ✭ 476 (-32.86%)
Mutual labels:  lightweight
Handright
A lightweight Python library for simulating Chinese handwriting
Stars: ✭ 634 (-10.58%)
Mutual labels:  lightweight
Goloader
load and run golang code at runtime. (WARNING: this repo has not been maintained for a long time, please take a look at https://github.com/pkujhd/goloader)
Stars: ✭ 564 (-20.45%)
Mutual labels:  dynamic
Update4j
Create your own auto-update framework
Stars: ✭ 497 (-29.9%)
Mutual labels:  dynamic
Elegantrl
Lightweight, efficient and stable implementations of deep reinforcement learning algorithms using PyTorch.
Stars: ✭ 575 (-18.9%)
Mutual labels:  lightweight
Qview
Practical and minimal image viewer
Stars: ✭ 460 (-35.12%)
Mutual labels:  lightweight
Arrive
Watch for DOM elements creation and removal
Stars: ✭ 703 (-0.85%)
Mutual labels:  dynamic
Microsocks
tiny, portable SOCKS5 server with very moderate resource usage
Stars: ✭ 549 (-22.57%)
Mutual labels:  lightweight
Unityoctree
A dynamic, loose octree implementation for Unity written in C#
Stars: ✭ 625 (-11.85%)
Mutual labels:  dynamic
Go Sqlbuilder
A flexible and powerful SQL string builder library plus a zero-config ORM.
Stars: ✭ 539 (-23.98%)
Mutual labels:  lightweight
Dss
🔥 Dynamic Style Sheets
Stars: ✭ 514 (-27.5%)
Mutual labels:  dynamic
Springboot Dynamicdatasource
Dynamic datasource, multiple datasource of spring boot/ distribution transaction; spring boot 多数据源,动态数据源,分布式事务
Stars: ✭ 588 (-17.07%)
Mutual labels:  dynamic
Ganalytics
A tiny (312B) client-side module for tracking with Google Analytics
Stars: ✭ 491 (-30.75%)
Mutual labels:  lightweight
Tinynvidiaupdatechecker
Check for NVIDIA GPU driver updates!
Stars: ✭ 675 (-4.8%)
Mutual labels:  lightweight
Oio Sds
High Performance Software-Defined Object Storage for Big Data and AI, that supports Amazon S3 and Openstack Swift
Stars: ✭ 465 (-34.41%)
Mutual labels:  lightweight
Rockgo
A developing game server framework,based on Entity Component System(ECS).
Stars: ✭ 532 (-24.96%)
Mutual labels:  lightweight
Domvm
DOM ViewModel - A thin, fast, dependency-free vdom view layer
Stars: ✭ 581 (-18.05%)
Mutual labels:  lightweight
Natasha
基于 Roslyn 的 C# 动态程序集构建库,该库允许开发者在运行时使用 C# 代码构建域 / 程序集 / 类 / 结构体 / 枚举 / 接口 / 方法等,使得程序在运行的时候可以增加新的模块及功能。Natasha 集成了域管理/插件管理,可以实现域隔离,域卸载,热拔插等功能。 该库遵循完整的编译流程,提供完整的错误提示, 可自动添加引用,完善的数据结构构建模板让开发者只专注于程序集脚本的编写,兼容 stanadard2.0 / netcoreapp3.0+, 跨平台,统一、简便的链式 API。 且我们会尽快修复您的问题及回复您的 issue.
Stars: ✭ 705 (-0.56%)
Mutual labels:  dynamic

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.

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].