# droidpluginteam/droidplugin

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/droidpluginteam-droidplugin).**

6,971 stars · 2,489 forks · Java · LGPL-3.0

## Links

- GitHub: https://github.com/DroidPluginTeam/DroidPlugin
- Homepage: http://droidpluginteam.github.io/DroidPlugin/
- awesome-repositories: https://awesome-repositories.com/repository/droidpluginteam-droidplugin.md

## Topics

`android` `droid-plugin` `hook` `plugin` `pluginframework` `virtualization`

## Description

DroidPlugin is an Android plugin framework designed to execute third-party APKs and native binaries without requiring installation or modifications to the host application manifest. It provides a native binary plugin host that allows the loading of C and C++ binaries through native hooks to extend core application functionality.

The framework utilizes a component router to direct activities and services to external plugins, bypassing the need for manual registration in the host manifest. It further decouples external activities from the host lifecycle through a proxy-based mechanism.

The system includes a process manager that handles plugin lifecycles and optimizes memory usage by recycling idle processes. It also implements resource isolation to separate memory and system components between the host and loaded plugins, preventing resource conflicts.

## Tags

### Operating Systems & Systems Programming

- [Dynamic Android Component Loading](https://awesome-repositories.com/f/operating-systems-systems-programming/dynamic-library-loading/dynamic-android-component-loading.md) — Enables runtime loading of Android components from external APKs without requiring installation or manifest registration.
- [Process Lifecycle Managers](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/process-lifecycle-orchestrators/process-lifecycle-managers.md) — Tracks plugin states and manages their execution lifecycle to optimize system memory.

### Development Tools & Productivity

- [Manifest-Bypassing Routing](https://awesome-repositories.com/f/development-tools-productivity/project-configuration/component-manifest-registration/manifest-bypassing-routing.md) — Provides a component router that directs activities and services to external plugins by bypassing host manifest registration.
- [External Package Execution](https://awesome-repositories.com/f/development-tools-productivity/package-installers/repository-based-package-installations/remote-source-executions/external-package-execution.md) — Allows the execution of application packages from external sources without requiring a full installation. ([source](https://cdn.jsdelivr.net/gh/droidpluginteam/droidplugin@master/README.md))

### DevOps & Infrastructure

- [APK Loaders](https://awesome-repositories.com/f/devops-infrastructure/distribution-packaging/software-distribution/application-packaging/android-packages/apk-loaders.md) — Loads and runs external application packages as plugins without requiring repackaging of the original source.

### Mobile Development

- [Android Component Proxies](https://awesome-repositories.com/f/mobile-development/android-component-proxies.md) — Uses proxy components to decouple external plugin activities from the host application's lifecycle.
- [Android Component Routers](https://awesome-repositories.com/f/mobile-development/android-component-routers.md) — Implements a routing system that directs activities and services to external plugins to bypass host manifest registration.
- [Android Plugin Frameworks](https://awesome-repositories.com/f/mobile-development/android-plugin-frameworks.md) — Provides a comprehensive framework for loading and managing external functional modules independently within an Android app.
- [Android Resource Isolation](https://awesome-repositories.com/f/mobile-development/android-resource-isolation.md) — Separates memory and system resources between the host and plugins to prevent conflicts and ensure independent access.
- [Native Binary Plugin Hosts](https://awesome-repositories.com/f/mobile-development/native-binary-plugin-hosts.md) — Provides a framework for loading C and C++ binaries through native hooks to extend Android application functionality.
- [Plugin Process Management](https://awesome-repositories.com/f/mobile-development/android-performance-optimizations/plugin-process-management.md) — Optimizes system performance by automatically recycling idle plugin processes to minimize overall memory consumption.
- [Native Runtime Hooking](https://awesome-repositories.com/f/mobile-development/native-runtime-hooking.md) — Utilizes native hooks to inject external C or C++ binaries into the runtime for high-performance functionality.

### Software Engineering & Architecture

- [Automatic Component Routing](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/plugin-installation-utilities/automatic-plugin-initializers/automatic-component-routing.md) — Routes activities and services to plugins automatically, bypassing the need for manual registration in the host manifest. ([source](https://cdn.jsdelivr.net/gh/droidpluginteam/droidplugin@master/README.md))
- [Plugin Installation and Management](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/plugin-installation-utilities/plugin-installation-and-management.md) — Provides a system to install, upgrade, or delete plugged applications and manage the recycling of idle processes. ([source](https://cdn.jsdelivr.net/gh/droidpluginteam/droidplugin@master/README.md))
- [Native Binary Integration](https://awesome-repositories.com/f/software-engineering-architecture/native-bridges/native-bridge-memory-management/native-binary-mapping/native-binary-integration.md) — Loads external C or C++ binaries into an Android app to extend core functionality with high-performance native plugins.
- [Native Binary Loading](https://awesome-repositories.com/f/software-engineering-architecture/native-bridges/native-bridge-memory-management/native-binary-mapping/native-binary-loading.md) — Implements a native binary plugin host that loads C and C++ binaries via native hooks to extend core functionality. ([source](https://cdn.jsdelivr.net/gh/droidpluginteam/droidplugin@master/README.md))

### Security & Cryptography

- [Resource Isolation](https://awesome-repositories.com/f/security-cryptography/external-resource-sharing/host-resource-access/resource-isolation.md) — Implements resource isolation to separate memory and system components between the host and plugins, preventing runtime conflicts. ([source](https://cdn.jsdelivr.net/gh/droidpluginteam/droidplugin@master/README.md))

### System Administration & Monitoring

- [Worker Resource Recycling](https://awesome-repositories.com/f/system-administration-monitoring/worker-process-tuning/worker-resource-recycling.md) — Implements an automated process for recycling idle plugin processes to minimize memory consumption. ([source](http://droidpluginteam.github.io/DroidPlugin/))
