MCPcopy Index your code
hub / github.com/alibaba/atlas

github.com/alibaba/atlas @v5.1.0.9-rc26

Chat with this repo
repository ↗ · DeepWiki ↗ · release v5.1.0.9-rc26 ↗ · + Follow
13,521 symbols 41,591 edges 1,244 files 6,612 documented · 49% updated 4y agov5.1.0.9-rc26 · 2019-04-10★ 8,14886 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Atlas

license Release Version Release Version Release Version

A powerful Android Dynamic Component Framework.

Atlas is an Android client-side containerization framework. we call it android dynamic component framework.

Atlas provides decoupled, component, and dynamic support. Atlas covers various issues in the project coding period, Apk run-time and follow-up operation and maintenance.

In the project period, Atlas enable engineers independent development, independent debug, because their project were physical isolation.

In the apk run-time, Atlas has complete component life cycle, class isolation and other mechanisms.

In the operation and maintenance period, Atlas provide rapid incremental update and rapid upgrade capacity.

Atlas put the work into the project period as much as possible, to ensure runtime simple and stable, maintenance easy.


Compared with multidex solution, Atlas not only solved the limitation of the method count(65535), but also clarified the boundary of development, provied the powerful capabilities for Android development, such as Parallel Iteration, Rapid Development, Flexible Release, Dynamically Update, Quick Fix Online Failure.

Unlike some Android plugin frameworks, Atlas is a component framework (we call it Bundle), Atlas is not a multi-process framework.


You can see there were three main library in this project (atlas-core/atlas-update/atlas-gradle-plugin)

  • atlas-core: This is client-side core library, it's job is to install each bundle, load the classes and resources on-demand when runtime.
  • atlas-update: This is client-side update library, which provide dexmerge capacity for update or upgrade.
  • atlas-gradle-plugin: This is Android Studio Gradle Plugin for engineers developing in project period, because we change some android default package mechanisms, include android aapt atlas-aapt.

Use Atlas

  • Demo
  • Doc: English, 中文
  • DingTalk im group: Scan the follow QR code or Search group 11727755 using DingTalk(钉钉) app. dingtalk.png

Support


Atlas support all Android version from Android 4.0 to 9.0.

Follow is support status.

Runtime Android Version Support
Dalvik 2.2 Not Test
Dalvik 2.3 Not Test
Dalvik 3.0 Not Test
Dalvik 4.0-4.4 Yes
ART 5.0 Yes
ART 5.1 Yes
ART M Yes
ART N Yes
ART 8.0 Yes
ART 9.0 Yes

Extension points exported contracts — how you extend this code

ByteOutput (Interface)
A byte sink. [6 implementers]
atlas-update/src/main/java/com/taobao/atlas/dex/util/ByteOutput.java
Chunk (Interface)
Generic interface for everything that is at minimum a "chunk" @author tstrazzere [10 implementers]
atlas-gradle-plugin/dexpatch/src/main/java/android/content/res/chunk/types/Chunk.java
BundleItemRunner (Interface)
Created by wuzhong on 2017/5/15. [48 implementers]
atlas-gradle-plugin/atlas-plugin/src/main/java/com/taobao/android/builder/tools/bundleinfo/BundleItemRunner.java
IDexElementsMethodInvoker (Interface)
Created by jingchaoqinjc on 18/3/4. [8 implementers]
atlas-core/src/main/java/android/support/multidex/IDexElementsMethodInvoker.java
OnFragmentInteractionListener (Interface)
This interface must be implemented by activities that contain this fragment to allow an interaction in this fragment to [2 …
atlas-demo/AtlasDemo/firstbundle/src/main/java/com/taobao/firstbundle/fragment/BlankFragment.java
PhotoCallback (Interface)
(no doc) [2 implementers]
atlas-demo/multi-feature-module/base/src/main/java/com/example/android/unsplash/data/PhotoService.java
ByteInput (Interface)
A byte source. [9 implementers]
atlas-update/src/main/java/com/taobao/atlas/dex/util/ByteInput.java
ByteOutput (Interface)
A byte sink. [6 implementers]
atlas-gradle-plugin/dexpatch/src/main/java/com/taobao/android/dex/util/ByteOutput.java

Core symbols most depended-on inside this repo

get
called by 1607
atlas-gradle-plugin/dexpatch/src/main/java/com/taobao/android/dx/cf/iface/FieldList.java
add
called by 1264
atlas-gradle-plugin/dexpatch/src/main/java/com/taobao/android/dx/util/IntSet.java
size
called by 861
atlas-gradle-plugin/dexpatch/src/main/java/com/taobao/android/dx/rop/type/TypeList.java
write
called by 591
atlas-gradle-plugin/dexpatch/src/main/java/com/taobao/android/dx/util/Output.java
append
called by 436
atlas-gradle-plugin/dexpatch/src/main/java/com/taobao/android/tpatch/model/PatchFile.java
getName
called by 411
atlas-gradle-plugin/atlas-plugin/src/main/java/com/android/aapt/Resources.java
exists
called by 353
atlas-gradle-plugin/dexpatch/src/main/java/com/taobao/android/dex/TableOfContents.java
call
called by 346
atlas-core/src/main/java/android/taobao/atlas/startup/patch/PatchMerger.java

Shape

Method 11,331
Class 1,532
Function 457
Interface 159
Enum 42

Languages

Java96%
TypeScript2%
Python2%

Modules by API surface

atlas-gradle-plugin/atlas-plugin/src/main/java/com/android/aapt/Resources.java1,840 symbols
atlas-gradle-plugin/atlas-plugin/src/main/java/android/aapt/pb/internal/ResourcesInternal.java132 symbols
atlas-aapt/external/compiler-rt/lib/sanitizer_common/scripts/cpplint.py120 symbols
atlas-update/src/main/java/com/taobao/atlas/dex/Dex.java110 symbols
atlas-gradle-plugin/dexpatch/src/main/java/com/taobao/android/dex/Dex.java109 symbols
atlas-gradle-plugin/atlas-plugin/src/main/java/com/taobao/android/builder/extension/TBuildConfig.java108 symbols
atlas-gradle-plugin/atlas-plugin/src/main/java/com/android/tools/r8/dex/AtlasVirtualFile.java93 symbols
atlas-gradle-plugin/atlas-plugin/src/main/java/com/taobao/android/builder/tasks/app/bundle/ProcessAwbAndroidResources.java72 symbols
atlas-gradle-plugin/dexpatch/src/main/java/com/taobao/android/dx/command/dexer/Main.java69 symbols
atlas-docs/guide-for-use/_book/gitbook/theme.js66 symbols
atlas-docs/guide-for-use/_book/gitbook/gitbook.js66 symbols
atlas-docs/_book/gitbook/theme.js66 symbols

For agents

$ claude mcp add atlas \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact