It doesn't have anything to do with ART!!!
In fact, there is no change in the framework itself, only in the installer. I would just like to get some early testing of a bigger change.
The test version uses a database to manage the list of downloadable modules. Previously, all the modules were loaded from an XML file on every start and kept in the memory. That worked fine, but with more and more modules in the repository, I had to rethink.
Some advantages of the new approach are:
- The XML doesn't need to be parsed on every start. Instead, the previously parsed state is available immediately.
- Reloading the repository index from the server can be done incrementally, loading only those modules which have changed since the last refresh. This significantly reduces traffic for both you and me. The full index has grown to about 350 kB (gzipped, it's ~1.6 MB uncompressed). The incremental updates are just a fraction of that. These XMLs are also much faster to parse than the big ones.
- Probably less memory usage, because only the currently used data needs to be kept in the memory. Information about all the other available modules can be loaded from the database when required.
- More flexibility in the future, e.g. for enhanced search. I have no plans at the moment and many other things are more important, but SQL allows for interesting queries without too much code.
If you're already using Xposed and want to help checking for bugs, feel free to download the test version. Assuming you are using version 2.6/.1, just open click on "Xposed Installer", then swipe twice to go to the module-specific settings. Select "Experimental" and the new version should show up. If not, press the refresh button once.
Please report here if you noticed any UI issues which are potentionally related to the introduction of the database. For crashes, please post a logcat showing the error. Thanks a lot for testing!
Please don't report installation or framework issues here. If you haven't used Xposed before, you should install the stable version 2.6.1 instead.