awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
singwhatiwanna avatar

singwhatiwanna/dynamic-load-apk

0
View on GitHub↗
6,009 stars·1,976 forks·Java·9 viewsblog.csdn.net/singwhatiwanna/article/details/40283117↗

Dynamic Load Apk

Dynamic-load-apk is an Android plugin framework that enables a host application to load and run uninstalled APK files as plugins at runtime. It provides the core infrastructure for loading APKs from storage, launching their activities, and managing their lifecycle without requiring the user to install them through the system package manager.

The framework handles the fundamental challenges of running uninstalled code on Android through several key mechanisms. It isolates plugin classes in a separate DexClassLoader to prevent conflicts with the host class hierarchy, merges plugin resources into a custom AssetManager so standard R identifiers work, and extracts native .so libraries from the plugin APK into a private directory for native code execution. Plugin activities are managed through a proxy pattern where a host proxy activity delegates lifecycle callbacks to the plugin's real activity class, and broadcast receivers can be registered dynamically at runtime without manifest entries.

For plugin development, the framework offers a single-JAR dependency model that encapsulates class loading, resource handling, and lifecycle delegation transparently. It supports three integration modes that define the degree of code dependency between a plugin and its host, ranging from no access to full access. Plugins can also be run in their own dedicated Linux process for memory and resource isolation, and the same APK can run as a standalone app when installed to simplify debugging and testing.

Features

  • Android Plugin Frameworks - Loads and runs uninstalled APK files as plugins within a host Android application without requiring installation.
  • Android Plugin JAR Bundles - Bundle all dynamic-loading logic into one library JAR so plugin developers can build without understanding the framework internals.
  • Process-Isolated Plugins - Runs plugin APKs in their own Linux process to sandbox memory, threads, and system resources.
  • Classloader Isolation - Isolates plugin classes in a dedicated DexClassLoader to prevent conflicts with the host class hierarchy.
  • Android Native Library Extractions - Extracts native .so libraries from plugin APKs into a private directory for native code execution.
  • Android Activity Proxy Delegations - Routes all plugin Activity lifecycle calls through a host proxy that delegates to the plugin's real Activity class.
  • Plugin APK Builders - Load and run an Android APK as a plugin without requiring installation on the device.
  • Uninstalled APK Launchers - Load and run an APK as a plugin from the host app without requiring installation.
  • Uninstalled APK Loaders - Load and run a plugin APK from storage without requiring the user to install it through the system package manager.
  • Runtime - Loads an Android APK at runtime and launches its activities without requiring device installation.
  • Android Native Library Loaders - Loads native .so libraries bundled inside a plugin APK for native code execution in an uninstalled plugin.
  • Host Code Invocation Modes - Provide three integration modes for a plugin to invoke the host application's code.
  • Host Interface Exposure Levels - Expose host interfaces to plugins at three levels depending on whether the plugin developer has the host source code.
  • Host Method Invocation Modes - Invoke host-provided methods from a plugin through one of three modes: none, partial, or full access.
  • Plugin Activity Lifecycle Delegations - Delegates Android activity lifecycle callbacks from a host proxy to a plugin activity so it behaves like a real Activity.
  • Resource Loading Plugins - Load a plugin's assets and resources into a custom Resources object so the standard R syntax works inside the plugin.
  • Host API Invocation Modes - Expose host interfaces to a plugin, supporting no-call, partial-call, and full-call modes depending on code access.
  • Android Resource Merging - Merges plugin resources into a custom AssetManager so R.id references work without installation.
  • Android Resource Accessors - Accesses plugin resources using standard Android R identifiers from an uninstalled APK without requiring installation.
  • Runtime Broadcast Receiver Registrations - Registers broadcast receivers dynamically from within a plugin APK without requiring a manifest entry.
  • Dynamic Broadcast Receiver Registrations - Registers broadcast receivers at runtime from within a plugin APK without requiring a manifest entry.
  • Dual-Mode Plugin Executions - Run the same APK as a standalone app when installed to simplify debugging and testing.
  • Host Dependency Levels - Integrates a plugin with three levels of dependency on the host codebase: none, partial, or full.

Star history

Star history chart for singwhatiwanna/dynamic-load-apkStar history chart for singwhatiwanna/dynamic-load-apk

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Dynamic Load Apk

Similar open-source projects, ranked by how many features they share with Dynamic Load Apk.
  • didi/virtualapkdidi avatar

    didi/VirtualAPK

    9,055View on GitHub↗

    VirtualAPK is an Android plugin framework and runtime environment designed to load and execute external Android packages dynamically. It functions as a component host that allows a main application to run activities, services, and providers delivered via external modules without requiring system installation or manifest registration. The framework enables dynamic feature delivery by loading external packages at runtime, allowing application functionality to be updated without redeploying the entire app. It provides a mechanism for Android sandbox execution, running isolated components within

    Java
    View on GitHub↗9,055
  • alibaba/atlasalibaba avatar

    alibaba/atlas

    8,149View on GitHub↗

    Atlas is a modularization system and dynamic component framework for Android. It functions as a class isolation layer and incremental update engine, allowing application logic and resources to be decoupled into independent bundles that are loaded at runtime. The project distinguishes itself by providing physical bundle isolation through custom class loaders to prevent dependency conflicts and bypass method count limits. It enables the deployment of remote components and incremental patches, using bytecode diffs and resource patching to update specific application parts without requiring a ful

    Javaandroidatlasdynamic
    View on GitHub↗8,149
  • kaedea/android-dynamical-loadingkaedea avatar

    kaedea/android-dynamical-loading

    1,073View on GitHub↗

    This project is a toolkit for modular Android application development, providing a framework to load external code, resources, and native libraries at runtime. It enables developers to structure applications into independent modules, facilitating dynamic feature deployment and the ability to update components without requiring a full application re-installation. The framework distinguishes itself through a robust orchestration system that manages the lifecycle and integration of these modular components. It employs custom class loading and resource injection to merge external modules into the

    Java
    View on GitHub↗1,073
  • tencent/shadowTencent avatar

    Tencent/Shadow

    7,772View on GitHub↗

    Shadow is an Android plugin framework designed to dynamically load and execute Android components and native libraries from external modules into a host application. It functions as a dynamic component loader that integrates activities, services, and broadcast receivers without requiring modifications to the host application code. The system includes a native library loader to execute C/C++ binary files from plugin modules directly within the host process. It also features a module dependency manager that supports segmented loading and explicit dependency chains across multiple plugin package

    Javaandroid
    View on GitHub↗7,772
See all 17 alternatives to Dynamic Load Apk→

Frequently asked questions

What does singwhatiwanna/dynamic-load-apk do?

Dynamic-load-apk is an Android plugin framework that enables a host application to load and run uninstalled APK files as plugins at runtime. It provides the core infrastructure for loading APKs from storage, launching their activities, and managing their lifecycle without requiring the user to install them through the system package manager.

What are the main features of singwhatiwanna/dynamic-load-apk?

The main features of singwhatiwanna/dynamic-load-apk are: Android Plugin Frameworks, Android Plugin JAR Bundles, Process-Isolated Plugins, Classloader Isolation, Android Native Library Extractions, Android Activity Proxy Delegations, Plugin APK Builders, Uninstalled APK Launchers.

What are some open-source alternatives to singwhatiwanna/dynamic-load-apk?

Open-source alternatives to singwhatiwanna/dynamic-load-apk include: didi/virtualapk — VirtualAPK is an Android plugin framework and runtime environment designed to load and execute external Android… alibaba/atlas — Atlas is a modularization system and dynamic component framework for Android. It functions as a class isolation layer… kaedea/android-dynamical-loading — This project is a toolkit for modular Android application development, providing a framework to load external code,… tencent/shadow — Shadow is an Android plugin framework designed to dynamically load and execute Android components and native libraries… hashicorp/go-plugin — go-plugin is a framework for implementing plugin architectures where extensions run as separate processes and… droidpluginteam/droidplugin — DroidPlugin is an Android plugin framework designed to execute third-party APKs and native binaries without requiring…