发布网友 发布时间:2022-04-23 06:43
共3个回答
热心网友 时间:2022-06-16 20:55
xposed 会不会影响性能这个问题的答案是显而易见的:会。而且这个问题还需要分两种情况讨论。Android 5.0+ 和 Android 4.4-。我们先从 Android 4.4 及其以下版本的 xposed 框架说起。xposed 归根究底就是一个提供对 Android 运行虚拟机 hook 的一个工具。可以使得用户无需修改软件本身而做到对软件进行修改(通过在运行时进行修改)。其本身提供了一套抽象的 API 来帮助开发者开发 xposed 上面的插件。在运行时,通过在类加载过程中对类进行重写的方法实现修改。就这一点上来说,无疑是存在性能上的损耗的。但也如这个问题下其他答主所说,由于 xposed 的一些插件的本身的目的就是优化其他更占资源的应用再加上 xposed 插件开发者本身开发经验较为丰富,也比较良心,所以对性能的影响是有限的,相反,其优化性能的功能带来的效果通常是显著的。我比较想单独谈论一下 Android 5.0+ 的 xposed 框架,这是目前其他答主还没有提到的地方。显然的 Android 5.0+ 带来的问题有很多,比如更加严格的 SELinux 的*以及对 位的支持等等对于 xposed 框架的实现难度提了更高的要求。当然最麻烦的东西还是 ART 虚拟机。所以在 Android 5.0+ 上的 xposed 框架有着很大的实现上的区别。首先,xposed 框架会将系统的 ART 虚拟机的库文件(libart.so 以及相关的文件)完全替换掉。但这一点,便没有 Dalvik 上实现得那么「干净」,并且这个替换掉的库会禁用掉了一些 ART 的代码优化的特性。这也会使得整个 hook 过程变得更可靠,更稳定。
热心网友 时间:2022-06-16 20:55
Xposed框架是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。
说白了,只是个APP修改器。打个比方,他只是工具箱里一把螺丝刀,正常情况并不会影响你的使用效率。当然,“安卓的事情,能叫bug吗?”Xposed一直有个问题就是它的日志文件会大量占用储存空间。简单地说,就是这把螺丝刀不占地,但他没卸下来一颗螺丝,就会打印一张纸“我今天几点几分又在XX卸了一颗型号为XX的螺丝”,久而久之自然会占用储存空间从而影响手机速度。另外如果安装插件过多,好比你每次用水杯(app)时,先拿螺丝刀扳手啊什么的“优化”一下,自然也会影响速度,跟Chrome一个道理。
热心网友 时间:2022-06-16 20:56
最为一个初级的Xposed插件开发者简单说一下,Xposed是一个hook提供器,在安卓虚拟机执行类加载的时候为各种已启用的插件的各种重写的资源/方法的hook到原来的对应类中,以达到“对源代码的修改或对源控件布局的修改”,这一步骤显然对app本身是有性能损失的。根据插件的性质,有些插件需要hook到所有的app中(比如变色状态栏)从而影响所有的app运行,有些插件可能只影响单一或几个app(比如状态栏网速)。再根据插件的性质,有些插件hook了app的某个方法,若这个方法会在窗口切换时执行那每次窗口切换时都要额外执行一段代码(比如变色状态栏),那么相当于每次窗口切换时都要比原来不启用插件时慢一点。