This topic describes the differences between the versions of Alibaba Cloud Mobile Hotfix.
The latest version, Sophix, provides a complete client-server solution for rolling updates. It features one-click packaging from a graphical interface, encrypted transmission, signature verification, and server-side controls for publishing and grayscale releases. This lets you quickly implement comprehensive and reliable rolling updates.
Differences between Mobile Hotfix versions:
Comparison | Andfix open source version | Alibaba Hotfix 1.X | Latest Alibaba Hotfix (Sophix) |
|---|---|---|---|
Method replacement | Supported, with some exceptions [0] | Supported, with some exceptions | Fully supported |
Add or remove methods | Not supported | Not supported | Supported on cold start [1] |
Method reflection calls | Only static methods are supported | Only static methods are supported | Supported on cold start |
Immediate effect | Supported | Support | Supported in some cases [2] |
Multi-DEX | Not supported | Support | Support |
Resource updates | Not supported | Not supported | Supported |
.so library updates | Not supported | Not supported | Supported |
Android version | Supports 2.3 to 7.0 | Supports 2.3 to 6.0 | Supports all versions, including 7.0 and later |
Supported devices | Generally supported[3] | Supported in most cases. | Fully supported |
Security mechanism | None | Encrypted transmission and signature verification | Encrypted transmission and signature verification |
Performance overhead | Low, almost no overhead | Low, almost no overhead | Low, with some overhead only on cold start |
Patch generation | Complex, requires command line operations | Complex, requires command line operations | Simple, uses a graphical interface |
Patch size | Small, includes only the changed classes | Very small, includes only the changed methods | Small, includes only the changed resources and code [4] |
Server-side support | None | Supports server-side control [5] | Supports server-side control |
[0] Exceptions include constructors, methods with more than 8 parameters, or methods whose parameters include primitive data types such as long, double, or float.
[1] Cold start means the patch takes effect only after the app is restarted.
[2] For code changes supported by Andfix and Hotfix 1.X, patches take effect immediately. However, other major code changes require a cold start for the patch to take effect.
[3] Hotfix 1.X supports most mainstream mobile phones. It is not supported on x86 devices or on ROMs where the underlying structure of the virtual machine has been modified.
[4] The patch size increases when supported resources and libraries are updated. This is expected. The patch includes only the differences to ensure its size is minimized.
[5] It provides server-side features for publishing and suspending patches, versioning, and grayscale releases. It also stores the patch packages that developers upload.