So another year, another Android version – and for users of Xposed Framework, another time of anxious waiting if Xposed is going to be ported to Nougat. We understand the anxiety, because for users of Xposed Framework, the modular tweaks and features that this piece of software allows them on their Android devices have become a way of daily life. So the good news is, development for Xposed on Nougat is ongoing.
We bet that even developer “rovo89” – creator of Xposed Framework – did not conceive how popular his work would become. And yet in reality, that’s what it really is – Xposed Framework allows users to make system level tweaks that stock software just is not able to give. And the fact that these tweaks are distributed via the modular framework of Xposed just adds to the popularity. Here’s rovo89, as he sounds out on the current status of porting Xposed to Android 7.0:
“It seems that more and more people get nervous about whether (and when) there will be Xposed for Nougat or not, so I felt I should say something.
Why does it take that long? Because with every release, I try to ensure that Xposed integrates nicely with the improvements in the new ART version. The step from Lollipop to Marshmallow wasn’t huge. It was an evolution, some things even made it possible to integrate Xposed in a more elegant way. On the whole, it was mainly careful porting than rather innovating.
With Nougat, something fundamental has changed. If you’re using Nougat already, you’ll have noticed that installations are much faster now. That’s because APKs aren’t compiled immediately (AOT), but start in (slower) interpreting mode. Sounds bad, but they have enabled JIT, which will quickly compile those methods that are used very often. That will restore the well-known and constantly improving performance of native code. Besides that, ART keeps a list of these frequently used methods (“profiling”). When the device is idle, it finally does the AOT compilation, but based on the profiling data. After that, you get the great performance right after starting the app. JIT is still waiting in case the usage patterns change, and I think it will also adjust the profile and improve the AOT compilation.
That results in various different compilation states and more complexity. Besides that, there were many issues in the past caused by Xposed’s need to recompile the whole ROM and all apps: It sometimes caused boot loops when the odex files were too heavily pre-optimized, it blocked quite some storage space to store the recompiled files, and I needed to disable some optimizations like inlining and direct pointer calls. I hope that I can make use of the JIT compiler to avoid that in Nougat. If Xposed knew from where a method is called, it could invalidate the callers’ compiled code, so that they would temporarily use the interpreter. If they’re important enough, JIT will recompile them.
I have already done a lot of research and experiments for this and I’m currently trying to implement this. But as you can imagine, all of that is much effort and can easily take hundreds of hours…..”
So basically, yes the Nougat port is coming. When? Well, the answer is when rovo89 is done with it. The Xposed Framework is still a hobbyist project, and the developer works on it in spare time. So if you want to use this on Nougat, you will have to wait until it is done.