Push a bug fix to a live Android app without requiring users to download and install an update.
Intercept calls to Android system methods inside your own process to work around OS bugs or limitations on older devices.
Log method arguments and return values at runtime for debugging without recompiling the app.
Override third-party SDK behavior inside your app without access to the SDK's source code.
| alibaba/dexposed | azkaban/azkaban | castorflex/smoothprogressbar | |
|---|---|---|---|
| Stars | 4,511 | 4,510 | 4,510 |
| Language | Java | Java | Java |
| Setup difficulty | moderate | hard | easy |
| Complexity | 4/5 | 4/5 | 2/5 |
| Audience | developer | data | developer |
Figures from each repo's GitHub metadata at analysis time.
Only works on Android 2.3 through 4.4 using the Dalvik runtime, ART (Android 5.0+) support was never completed and the project is unmaintained.
Dexposed is an Android library from Alibaba that lets you intercept and modify the behavior of Java methods in a running app without changing the app's source code or restarting it. The approach comes from a technique called AOP, or aspect-oriented programming, which is a way of adding behavior to code at specific points, such as before or after a method runs, without touching the method's original implementation. The way it works is that you hook a method by name, and provide a callback that runs before the method executes, after it executes, or in place of it entirely. You can read and modify the method's arguments, inspect the object the method belongs to, or override the return value. This applies not only to your own app's code but also to Android system code running inside the same process, which is useful for working around bugs or limitations in older Android versions. Because new code can be loaded dynamically without a restart, the library was used for applying hot patches to production apps. If a bug was found in a live app, a fix could be pushed and applied without requiring users to download and install an update. Integration requires adding the library as a dependency and adding one line of initialization code at app startup. The library includes a check for device compatibility, since it relied on the older Dalvik runtime rather than the newer ART runtime that Android switched to starting with version 5.0. The project was most stable on Android versions 2.3 through 4.4. Support for the ART runtime used in Android 5.0 and later was listed as early beta or not supported at the time of the last published updates, and the project does not appear to have been actively maintained since.
An Android library from Alibaba that lets you intercept and modify Java method calls inside a running app at runtime, without changing source code or restarting, primarily used for hot patching bugs in production apps.
Mainly Java. The stack also includes Java, Android.
Use freely for any purpose including commercial, keep the Apache 2.0 license text and copyright notice when redistributing.
Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.