# alibaba/atlas

**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/alibaba-atlas).**

8,149 stars · 1,468 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/alibaba/atlas
- awesome-repositories: https://awesome-repositories.com/repository/alibaba-atlas.md

## Topics

`android` `atlas` `dynamic`

## Description

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 full binary reinstall.

The framework covers a broad range of capabilities including on-demand module loading, remote component fetching, and lifecycle management for dynamic bundles. It also provides tools for baseline package versioning and a development workflow that allows for the independent debugging of individual modules.

The system optimizes app startup by utilizing interpreted-first execution to reduce initial launch latency.

## Tags

### Development Tools & Productivity

- [Classloader Isolation](https://awesome-repositories.com/f/development-tools-productivity/plugin-systems/process-isolated-plugins/plugin-resource-context-isolation/classloader-isolation.md) — Implements custom class loader isolation to maintain separate namespaces for application bundles and prevent dependency conflicts.
- [Remote Application Bundles](https://awesome-repositories.com/f/development-tools-productivity/dependency-bundling/storage-bundle-execution/remote-application-bundles.md) — Downloads and initializes functional bundles from a remote server at runtime to avoid initial bundling. ([source](https://github.com/alibaba/atlas/blob/master/atlas-demo))
- [Application Updaters](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-management-tooling/version-manager-updaters/application-updaters.md) — Replaces specific application bundles with patched versions to enable incremental updates without a full reinstall. ([source](https://github.com/alibaba/atlas/blob/master/atlas-update))
- [Cross-Bundle Resource Sharing](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-configuration-systems/library-bundling-configurations/shared-library-bundling/cross-bundle-resource-sharing.md) — Allows separate application bundles to access code and assets residing in the base host application. ([source](https://github.com/alibaba/atlas/blob/master/atlas-docs))
- [Bundle Resource Management](https://awesome-repositories.com/f/development-tools-productivity/bundle-distribution-tooling/asset-bundling/bundle-resource-management.md) — Provides globally unique resource access for each bundle and independently updates asset managers during installation. ([source](https://github.com/alibaba/atlas/blob/master/atlas-core))
- [Bundle-Specific Debugging](https://awesome-repositories.com/f/development-tools-productivity/bundle-specific-debugging.md) — Installs targeted updates for a single feature bundle during development to verify changes without a full deployment. ([source](https://github.com/alibaba/atlas/tree/master/atlas-demo))
- [Runtime Logic Hot-Updates](https://awesome-repositories.com/f/development-tools-productivity/client-update-utilities/runtime-logic-hot-updates.md) — Allows updating client logic and protocols at runtime without requiring a full application reinstall. ([source](https://github.com/alibaba/atlas/blob/master/atlas-core))
- [Module-Specific Debugging](https://awesome-repositories.com/f/development-tools-productivity/module-specific-debugging.md) — Installs updates to a single component over a development bridge to verify changes without a full deployment. ([source](https://github.com/alibaba/atlas/blob/master/atlas-demo))
- [Package Development Isolation](https://awesome-repositories.com/f/development-tools-productivity/package-development-isolation.md) — Provides physical bundle isolation to enable isolated testing and development of individual features within a larger workspace. ([source](https://github.com/alibaba/atlas#readme))

### Programming Languages & Runtimes

- [Android Class Namespace Isolation](https://awesome-repositories.com/f/programming-languages-runtimes/dynamic-class-creation/class-loading-mechanisms/class-loader-hierarchies/android-class-namespace-isolation.md) — Acts as a class isolation layer that routes class lookups through custom loaders to maintain separate namespaces.
- [Class Loader Hierarchies](https://awesome-repositories.com/f/programming-languages-runtimes/dynamic-class-creation/class-loading-mechanisms/class-loader-hierarchies.md) — Uses custom class loader hierarchies to maintain separate namespaces and prevent class conflicts between dynamic bundles. ([source](https://github.com/alibaba/atlas/tree/master/atlas-core))

### Artificial Intelligence & ML

- [Application Component Hotfixes](https://awesome-repositories.com/f/artificial-intelligence-ml/incremental-updates/application-component-hotfixes.md) — Delivers rapid updates and hotfixes to specific application components without requiring a full installation. ([source](https://github.com/alibaba/atlas/blob/master))

### Part of an Awesome List

- [Application Bundle Patching](https://awesome-repositories.com/f/awesome-lists/devtools/dynamic-updates/application-bundle-patching.md) — Provides the ability to push incremental code and resource patches to specific bundles without a full application reinstall. ([source](https://github.com/alibaba/atlas/tree/master/atlas-core))

### DevOps & Infrastructure

- [Bundle Isolation](https://awesome-repositories.com/f/devops-infrastructure/dependency-management/project-management/dependency-isolation/bundle-isolation.md) — Groups features into independent containers with their own dependencies to prevent class conflicts and bypass method limits.
- [Layered Incremental Deployments](https://awesome-repositories.com/f/devops-infrastructure/layered-incremental-deployments.md) — Generates and deploys bytecode diffs to update only changed classes and resources for rapid hot-fixes. ([source](https://github.com/alibaba/atlas/blob/master/atlas-demo))
- [Binary Diff Patching](https://awesome-repositories.com/f/devops-infrastructure/layered-incremental-deployments/binary-diff-patching.md) — Produces small update packages by including only changed components to reduce data transfer during deployment. ([source](https://github.com/alibaba/atlas/tree/master/atlas-gradle-plugin))

### Mobile Development

- [Android App Modularization](https://awesome-repositories.com/f/mobile-development/android-app-modularization.md) — Organizes large applications into independent modules with their own lifecycles to simplify development for large teams.
- [Android Application Update Systems](https://awesome-repositories.com/f/mobile-development/android-application-update-systems.md) — Pushes small code and resource patches to specific application components without requiring a full binary reinstall.
- [Android Binary Patching Engines](https://awesome-repositories.com/f/mobile-development/android-binary-patching-engines.md) — Deploys bytecode diffs and resource patches to update specific application components without a full reinstall.
- [Android Plugin Frameworks](https://awesome-repositories.com/f/mobile-development/android-plugin-frameworks.md) — Provides a framework for loading external business logic and resources into an Android application without modifying the main binary.
- [Dynamic Feature Deployment](https://awesome-repositories.com/f/mobile-development/dynamic-feature-deployment.md) — Updates application features via patch packages without requiring a full reinstall of the main binary. ([source](https://github.com/alibaba/atlas/blob/master/atlas-gradle-plugin))
- [Incremental Application Updates](https://awesome-repositories.com/f/mobile-development/incremental-application-updates.md) — Delivers rapid updates and hotfixes to specific application parts without requiring a full package reinstall. ([source](https://github.com/alibaba/atlas#readme))
- [Remote Component Loading](https://awesome-repositories.com/f/mobile-development/remote-component-loading.md) — Downloads and loads feature bundles from a remote server at runtime instead of including them in the binary. ([source](https://github.com/alibaba/atlas/tree/master/atlas-demo))
- [Remote Module Loaders](https://awesome-repositories.com/f/mobile-development/remote-module-loaders.md) — Provides a system to fetch and initialize functional application bundles from remote servers on demand to reduce initial installation size.
- [Interpreted-First Startup](https://awesome-repositories.com/f/mobile-development/interpreted-first-startup.md) — Reduces startup latency by bypassing heavy bytecode optimization on first launch through interpreted-first execution.

### 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) — Loads Android-specific business logic and resources from external binaries at runtime to optimize memory and startup. ([source](https://github.com/alibaba/atlas/tree/master/atlas-docs))

### Software Engineering & Architecture

- [Application Baselines](https://awesome-repositories.com/f/software-engineering-architecture/baseline-management/application-baselines.md) — Provides a mechanism to create foundational application artifacts used as reference points for incremental update patches.
- [Patch](https://awesome-repositories.com/f/software-engineering-architecture/baseline-management/patch.md) — Creates a base artifact containing core products to serve as the foundation for incremental updates. ([source](https://github.com/alibaba/atlas/blob/master/atlas-gradle-plugin))
- [Baseline Package Versioning](https://awesome-repositories.com/f/software-engineering-architecture/baseline-package-versioning.md) — Generates foundational application packages required to calculate and apply incremental updates. ([source](https://github.com/alibaba/atlas/tree/master/atlas-gradle-plugin))
- [Resource Patching](https://awesome-repositories.com/f/software-engineering-architecture/binary-patching-utilities/resource-patching.md) — Provides optimized binary manipulation to update application resources independently of the main binary.
- [Bytecode Patching](https://awesome-repositories.com/f/software-engineering-architecture/bytecode-patching.md) — Applies bytecode diffs to existing components at runtime to update application logic without a full reinstall.
- [Dynamic Component Lifecycles](https://awesome-repositories.com/f/software-engineering-architecture/component-lifecycle-management/application-component-lifecycles/dynamic-component-lifecycles.md) — Manages the installation, operational state, and updating of dynamic application bundles at runtime. ([source](https://github.com/alibaba/atlas/blob/master/atlas-core))
- [Dependency Isolation Strategies](https://awesome-repositories.com/f/software-engineering-architecture/dependency-isolation-strategies.md) — Implements architectural patterns to enforce strict boundaries and isolation between application bundles and their dependencies. ([source](https://github.com/alibaba/atlas/tree/master/atlas-demo))
- [Android Bundle Isolation](https://awesome-repositories.com/f/software-engineering-architecture/execution-control/namespace-isolation/module-isolation/architecture-isolation/logic-isolation/android-bundle-isolation.md) — Separates business logic and dependencies into isolated bundles to prevent class conflicts and enable independent feature development.
- [Isolated Feature Packaging](https://awesome-repositories.com/f/software-engineering-architecture/isolated-feature-packaging.md) — Groups application features into isolated bundles with unique classes to develop and deploy them independently. ([source](https://github.com/alibaba/atlas/blob/master/atlas-gradle-plugin))
- [Isolated Module Packaging](https://awesome-repositories.com/f/software-engineering-architecture/isolated-module-packaging.md) — Bundles application components into independent, isolatable modules that maintain their own context and dependencies. ([source](https://github.com/alibaba/atlas/tree/master/atlas-gradle-plugin))
- [Modular Application Composition](https://awesome-repositories.com/f/software-engineering-architecture/modular-application-composition.md) — Decouples application logic into independent bundles with separate dependencies to enable modular development. ([source](https://github.com/alibaba/atlas/blob/master/atlas-demo))
- [Component-Based Development](https://awesome-repositories.com/f/software-engineering-architecture/component-based-development.md) — Enables engineers to develop and debug independent software building blocks in isolation. ([source](https://github.com/alibaba/atlas/blob/master))
- [Component Isolation Environments](https://awesome-repositories.com/f/software-engineering-architecture/development-methodologies/engineering-best-practices/development-process-methodologies/development-workflows/isolated-component-environments/component-isolation-environments.md) — Decouples development and runtime environments using physical class isolation to debug features independently. ([source](https://github.com/alibaba/atlas/blob/master/atlas-docs))
- [Dynamic Resource Routing](https://awesome-repositories.com/f/software-engineering-architecture/dynamic-resource-routing.md) — Routes application resource access so that updated assets in dynamic bundles take effect immediately. ([source](https://github.com/alibaba/atlas/tree/master/atlas-core))
- [Startup Optimizers](https://awesome-repositories.com/f/software-engineering-architecture/function-execution-engines/just-in-time-compilers/startup-optimizers.md) — Reduces initial launch latency by skipping verification and optimizing bytecode in the background. ([source](https://github.com/alibaba/atlas/blob/master/atlas-docs))
- [Android App Startup Optimizations](https://awesome-repositories.com/f/software-engineering-architecture/function-execution-engines/just-in-time-compilers/startup-optimizers/android-app-startup-optimizations.md) — Reduces first-launch wait times using interpreted execution and background bytecode optimization for dynamic components.
- [Host-Bundle Resource Sharing](https://awesome-repositories.com/f/software-engineering-architecture/shared-resource-objects/host-bundle-resource-sharing.md) — Allows dynamic modules to access shared code and assets residing within the main application shell.

### Web Development

- [Custom ClassLoader Isolation](https://awesome-repositories.com/f/web-development/browser-session-managers/context-isolation-managers/runtime-context-isolation/microvm-runtime-isolations/custom-classloader-isolation.md) — Prevents class conflicts and maintains stability by creating distinct execution boundaries for components at runtime. ([source](https://github.com/alibaba/atlas/blob/master))
- [On-Demand Component Loading](https://awesome-repositories.com/f/web-development/on-demand-component-loading.md) — Downloads and initializes functional bundles from remote servers only when specific business logic is triggered.
- [Package On-Demand Fetching](https://awesome-repositories.com/f/web-development/data-fetching-caching/on-demand-loaders/package-on-demand-fetching.md) — Downloads specific application components from a cloud server on demand to optimize the initial app size. ([source](https://github.com/alibaba/atlas/tree/master/atlas-docs))
- [Interpreted-First Execution](https://awesome-repositories.com/f/web-development/performance-optimizations/initial-page-load-optimizations/interpreted-first-execution.md) — Uses interpreted execution to bypass heavy optimization steps during the first load for faster component startup. ([source](https://github.com/alibaba/atlas/tree/master/atlas-docs))

### Networking & Communication

- [Remote File Downloads](https://awesome-repositories.com/f/networking-communication/remote-file-downloads.md) — Retrieves infrequently used functional bundles from remote URLs to reduce the initial installation size. ([source](https://github.com/alibaba/atlas/blob/master/atlas-docs))

### Security & Cryptography

- [Host Resource Access](https://awesome-repositories.com/f/security-cryptography/external-resource-sharing/host-resource-access.md) — Grants dynamic modules access to shared code and assets located within the main application shell. ([source](https://github.com/alibaba/atlas/tree/master/atlas-docs))

### User Interface & Experience

- [Component Lifecycle Management](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks/lifecycle-state-management/component-lifecycle-management.md) — Manages the installation, operation, and updates of application bundles throughout their operational cycle. ([source](https://github.com/alibaba/atlas#readme))
