前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >X86的安卓手机为什么可以运行ARM应用程序

X86的安卓手机为什么可以运行ARM应用程序

作者头像
乱码三千
发布2021-08-24 14:52:38
2.5K0
发布2021-08-24 14:52:38
举报
文章被收录于专栏:乱码三千乱码三千

起因

从事android开发的小伙伴都知道,在我们进行so库适配的时候,只需要保留armabi这个库,就可以匹配市面上几乎所有的机型

但同时我们也知道,不同架构cpu只能执行与其对应架构编译出来的程序,也就是说x86设备只能执行x86程序,而不能执行ARM程序

那为什么x86的安卓设备却可以执行armabi的so库呢?

解答

我们知道从最一开始基于ARM的程序占据了几乎所有的Android生态环境。Inter为了顺利打入移动市场,一个至关重要的问题就是需要兼容ARM应用程序。

但是不同架构cpu对应的指令集不一致,为了解决这个问题,就需要一个中间翻译器,于是Inter开发了软件Houdini。Houdini可以把ARM指令集转化为X86指令集从而在Android X86设备上运行

同时由于市面上mips架构的安卓设备非常少,这也就是为什么只需一个armabi就可以通吃几乎所有设备,不过x86设备运行ARM程序虽然没什么问题,但是执行效率的损伤是必然的

附加

adb shell模式下, 可以通过一下命令查看当前安卓设备支持的指令架构:

代码语言:javascript
复制
getprop

如果是x86cpu,既可以运行x86的可执行文件,也可执行ARM架构的程序,具体的参考prop中对应的abi

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乱码三千 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 起因
  • 解答
  • 附加
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档