关于Xposed for Android 7.0(Nougat )的最新消息,附作者原文,8月更新

  • A+
所属分类:Xposed框架

关于Xposed框架在Android7.0上的一些消息,目前其作者rovo89在git上再次做了一些回复,从作者的意思来看至少这个项目还是没有死掉的,应该还有戏,主要的问题在于Xposed框架不像是一般的软件开发能够垂直前进,目前的状况是走一步算一步,走完一步才有下一步要做什么的打算,而作者也没有一个比较集中的时间来持续战斗。当然作者也考虑了其他愿意加入到xposed框架工作中的开发者,不过他自己感觉是并没有什么帮助,并且可能担心这些开发者心急只搞出个半成品来就不好了,所以也请大家能够再多一些耐心,毕竟也是rovo89的东西,怎么办还是人家说了算,更谈不上别的。

0823更新以下作者最近的动态,想来作者应该一直在努力适配Nougat官方版本的xposed框架,这不Android8.0也就是O,奥利奥版本都已经正式发布了,也难怪大家着急,有人在官方的项目下问了O版本在将来的适配情况,Rovo89表示还是非常乐观的,也就是说当Nougat版本适配之后,O版本也会很快的推出,毕竟不像是Android6.0~Android7.0的跨度和变化这么大。

非官方的Nougat版Xposed框架已经推出:
[suxing_insert_post ids=2544]

当然别人加入开发就一定会有一些效果的,git上有一个项目大家可以看看:
ART module for a built-in enabled Xposed firmware based on AOSP 7

来自git项目上在7.10日的答复:

You can have that opinion - but in the end, it's my own decision whether I want to publish my current WIP or not, and you'll have to respect that decision.

There are a couple of reasons why I won't do that. Working on Xposed isn't really straight-forward, it's an iterative process in which I hardly know what to do next until it's done. That makes it quite hard to work on it with someone else, unless there's some really close communication and common understanding how things should work. Given that my time for Xposed is pretty unreliable, I would not be able to fulfill my part in this. Besides that, I'm a perfectionist. I wouldn't accept any foreign code without very close review to make sure it's "the right way" to implement it. This would also be very time-consuming. It might work if that other person has thoroughly studied how ART works and did a lot of research to understand how Xposed can best be integrated into it. However, my experience shows that even for previous releases (for which the source code is published), there wasn't really anyone who digged into it deeply enough to help analyse and fix some of the issues.

If somebody contacted me saying "hey there, I checked out the ART source code and I think I understood in general how it works. here are some ideas how I would implement Xposed for Nougat it, can I help you somehow?", then I would consider giving it a try, but I believe that just pushing out the current state wouldn't help the project. We would maybe see "some" release really fast by people who compile the code, see that it appears to be working fine and publish it as "their port", despite the issues and things to do that they wouldn't be aware of. So call me selfish, but I wouldn't want to see such a half-finished release.

That said, I'm now at a point where I'm wrapping up some things, reviewing the big amount of changes I've done in the last months and clustering them into individual commits to keep the overview. I think I got some really nice technique working to ensure that the apps can still be compiled with all the optimizations enabled. When a method is hooked, its callers will be deoptimized, but can later be compiled again (with optimizations, but also knowing about the hook). That's possible in Nougat thanks to JIT, which wasn't enabled in previous versions. So it's not just a simple port of Xposed, important parts are actually re-invented. There are still many tasks though before this can work beyond my test cases, so you'll have to be patient and stay tuned!

不细致翻译了,大体上如下(2月的xda答复):
看上去越来越多的人对于Android 7.0版本的Xposed框架能否以及什么时候能够发布表示担忧,因此我(作者rovo89)觉得有必要说两句。
首先,为什么Android7.0的版本耗费了如此长的时间?因为每次的发布作者都要努力确保Xposed与新的ART版本能够完美适配,不是从Lollipop 到 Marshmallow这种级别的变化,这可以说是一种飞跃,甚至能够在某些方面能够让Xposed与Android系统结合的更完美,而Xposed则可以更加简洁,基于以上的种种,作者需要小心对待。

关于Xposed for Android 7.0(Nougat )的最新消息,附作者原文,8月更新

Android 7.0 Xposed 框架

总之是由于Android 7.0本身的一些变化加上作者的时间并不是很充沛造成了这个版本拖得如此之久,按照作者自己的比方假如每天倒腾24小时,可能一两周也就能搞定,但现在的情况是可能一个月也不见得有24小时能够用于Xposed的开发,所以对于Android 7.0 的xposed框架什么时候能够发布,作者也是不确定的,大家耐心等待吧。

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. That's net (working) time, not real time. If I worked on Xposed 24 hours a day, that might be done within a week or two. But, in the last year or so, my "time for Xposed stuff" was about 5 hours a week, sometimes more and sometimes less. You can do the math yourselves... There are just so many other (non-technical) things that I need or want to do. If you substract the time it took me to build the new installer version, move the repo to a new server and restore compatibility with the Nov 2016 security patches, that's even less time for new stuff.

So yes, I'm still working on Nougat support, whenever my free time allows it, but I don't have any idea when it will be done. Once it's done, you'll know.

原文链接:https://forum.xda-developers.com/showpost.php?p=70773752&postcount=41

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:0   其中:访客  21   博主  1

    • 3700 3700 0

      xposed加油!

      • 你那 你那 0

        等到何年何月才能用呀!!!! :mrgreen:

        • 大蛇 大蛇 0

          呵呵 :twisted: :twisted: :twisted:

          • 扣肉2双核 扣肉2双核 1

            :wink: 感谢开发者带来了现在的xposed,无论等多久都支持开发者

            • 会飞的鱼 会飞的鱼 0

              我想问一下,作者为什么不说一下开发xp框架需要学习那些东西,好让爱好者们共同帮忙开发,这样一来新版xp框架很快就发布了,前几天看到有v88版了,没敢刷 :cool:

                • Xposed Xposed Admin

                  @会飞的鱼 作者应该有的吧,只是没有去找,去xda看看

                • 尘封 尘封 0

                  现在都快7月份了。。。

                    • Xposed Xposed 6

                      @尘封 没法啊

                        • 神龙 神龙 0

                          @Xposed 7月份了,加油,我等安卓7.0的xp :mrgreen:

                      • BLACKBERRY BLACKBERRY 0

                        急不可耐了 哈哈

                        • 002 002 0

                          还没出吗,好痛苦。好久没升级手机了 :???:

                          • 简单爱 简单爱 1

                            一直都没升级7.0就等xposed了

                            • 薛定谔猫态的大茶几 薛定谔猫态的大茶几 0

                              说啥呢……
                              适配7的xposed在今天已经出了啊
                              博主该跟进了

                              • kevin kevin 0

                                出来了,经魔趣编译,现只测试了部分ROM

                                  • Xposed Xposed 6

                                    @kevin 可以的,我今天跟进一下

                                  • zibeline zibeline 0

                                    已经出了支持7.1的框架,但是7.0的没有,悲催

                                      • Xposed Xposed 6

                                        @zibeline 早晚的事情,late is better

                                      • 猴子 猴子 0

                                        出了 但是非官方的。

                                        • lteocy lteocy 1

                                          意思是还得好几个月?

                                            • Xposed Xposed 6

                                              @lteocy 非官方的已经出了哈

                                            • 哦哦 哦哦 1

                                              miui有可能出7.1吗

                                                • Xposed Xposed 6

                                                  @哦哦 官方有了,应该就有人会改出来的