In the past month, we worked very hard on something that is a core part of what makes ARTist an interesting and useful project: The module framework.
We started off with the idea of providing a general instrumentation framework that is easily extensible by creating custom instrumentation modules.
We even went one step further and already provided a lot of boilerplate code for modules that just inject method calls. So creating your own modules to conduct research or just play around with Android apps is a breeze, right?
That’s for the theory.

On the practical side, we realized that, even though the modularization infrastructure was there, we had a lot of legacy code lurking around that made it hard to actually write own modules, even for people involved with the project.
The reason is simple: ARTist started off as a research project and hence inherits all the downsides we know from other academic prototypes. It is working, but not production-ready. There is rarely time for that in academia.
The result is that code is not perfectly tested and the required refactoring is on hold because of other, more pressing deadlines.

In the last weeks, we actually took our time to do the much needed refactoring and cleanup. Yesterday, we pushed a new ARTist version to GitHub that incorporates the updated module framework.
We got rid of a lot of legacy code, restructured the initialization and setup of modules, and simplified the process of creating new ones.

TL;DR: Finally, creating own app instrumentation modules should be way easier now.

There is still a lot to do. You still need to build ARTist and its modules as a part of AOSP, the Android Open Source Project. But let’s take one step after another. As of now, working with ARTist became a lot easier.

So what will happen next is that, in the next few weeks, we will update the documentation to reflect the changes, so that the website can be used again to get started with ARTist development.
As usual, if you are interested to get started before the official documentation is out, drop us a message.