Let’s start by talking about what we understand the Android plugin framework does, so that people don’t have to be on the same channel when communicating with us.
The plug-in framework as we understand it has two functions: “self-decoupling” and “installation-free.”
Self-decoupling refers to an application that was originally compiled from a single piece of code, but instead wants to compile some of its functions separately and dynamically plug into the main application like a plug-in. This makes the main application smaller and easier to download and install. Second, it can be more independent functions can be developed and debugged separately, or even updated separately. So this need for “self-decoupling” doesn’t exist on The Android platform. It’s been around since the PC era.
Install-free refers to an application that normally requires an installation process to start and run, but would like to start from an already installed and running App without installation. The main purpose of this requirement is to improve traffic reuse capability. For example, if a new application is recommended to be installed in an application with a large number of users, users will lose a lot of users if they wait for downloading and then the installation interface pops up after clicking the entry. Because users are less willing to install new apps because they feel the cost of installation. Even if you’re confident that users will stay once you install your app, it’s likely to be lost to the installation process. This setup free scenario is actually the main scenario for Shadow to serve our own business.
“Developing apps like the Web” is one of our late goals, which is probably a combination of “self-decoupling” and “install-free.” To run an App that originally needs to be installed without installation, users inevitably need to wait for the installation package of the App to be downloaded locally before running it. And we know that the Web is generally not such, open which page to download which page resources, do not have to download the entire site to the local to open the first page. As a result, we also practiced “self-decoupling” in our business, breaking down our business plug-ins into a dozen or so. The ability to download one part and start another is thus achieved. The current open source code of Shadow already supports this capability, but there is no Sample demonstrating this scenario in the current open source code of Shadow, we will add it as soon as possible.
There is also a difference in version control between self-decoupling and installation-free, in that self-decoupling plug-ins are unlikely to run on their own and are more likely to rely on host programs or other plug-ins. Install-free apps usually don’t have this dependency because they can be installed and run themselves. The problem with having dependencies is that they are not easy to update separately. If there are only interface-level dependencies on other parts (host or other plug-ins), we can update the implementation of the plug-in. If there are implementation-level dependencies on other parts, it is generally difficult to update plug-ins separately.
So you are welcome to communicate with us about the use of the plug-in framework, and we will first care about whether your business scenario is “self-decoupled”, “installation-free”, or a combination of the two. It’s a matter of version control and what can and can’t be updated.