[Android X86]安装ARM库支持解决APP安装闪退或无法打开

文章目录

出现的问题

安装APP无法正常打开、或者闪退。

在X86新系统,有的只需要设置里面开启就会自动下载兼容库,但是有的还是没有作用。本人在测试9.0的时候,系统会自动下载ARM兼容包并安装。6、7、8.0只需要执行命令即可自动下载,但是需要开启fanQ功能,下载节点都是国外的,速度很慢,Arm兼容包37-40M,如果没有的话建议耐心等待也是能下载完成的。

处理办法

在执行之前请打开设置中“兼容性”或“X86兼容性”按钮,打开后执行解决方法。

Android X86 6.x 7.x 8.x 9.x的解决方法:

① 打开桌面终端 或者 Alt + F1进入终端界面(Alt+F7退出终端界面)

② 在终端中输入命令 su 等待 ROOT授权提示,并给与“终端”永久ROOT权限;Alt+F1进入则不需要

③ 执行命令enable_nativebridge 如果提示 错误信息,则继续重复执行,直到程序开始执行wget的时候等待下载完成安装即可。

PS:③的错误提示是指非提示 enable_nativebridge 二进制执行文件不存在错误。

其他情况或者Android低版本:

① 根据系统下载自己的houdini,需要FanQ。{version}为安卓版本变量名,如Android7.x 就将下载地址中{version}改为7。

② 将下载的houdini.sfs 放入 /system/etc 目录下面

③ 执行命令enable_nativebridge 如果提示错误,如果提示 mount /xxx/arm/ xxx/arm64/ not found错误,就根据提示的路径,创建对应的路径。比如提示的是 /system/lib/arm/xxx 不存在的错误,就把下载的 houdini.sfs 放入到此目录下,然后执行,如果目录不存在需要手工创建目录。

文件下载地址

64位houdini:http://mirror.ddscentral.org/dl.android-x86.org/houdini/{version}_y/houdini.sfs
32位houdini:http://zebra-mirror.ddscentral.org/dl.android-x86.org/houdini/{version}_x/houdini.sfs

原因分析

x86 使用的是 SSE 指令集,而 ARM 是用的 NEON 指令集,两者差异导致了应用不兼容。不过好在 Android 的大部分应用运行在 Dalvik 虚拟机之上,并不依赖 CPU 架构,因此这些应用可以很好地跑在 x86 上。

支持 Dalvik 的程序占据大多数,但仍然会有一些应用绕过 Dalvik。比如需要更高的性能或者需要硬件的支持的时候,前者通常是大型游戏,后者则是结合了感应器或者电源管理等硬件相关的应用。Angry Bird 两者都不占,所以可以兼容,赛车游戏两者都需要,所以大多不兼容。

这些稍显复杂的应用数量并不低,且用户需求强烈。为了快速解决这些问题,英特尔试图通过技术去完善,开发了一种转换技术“Houdini”。 “Houdini”相当于一个中间层,可以让原本不兼容的应用跑在 x86 上。测试效果是很不错的,但是一些输入法程序并不能使用,大家可以通过提取凤凰OS的输入法安装到Android X86系统中即可,这个只是我的想法没有尝试,但是网上的输入法X86版本的尝试都无效。测试环境是Android 7/9系

原文链接:[Android X86]安装ARM库支持解决APP安装闪退或无法打开