首页 > 解决方案 > 为 x86 构建具有 ARM 兼容性的 Android 11

问题描述

今年早些时候,谷歌发布了与 ARM 兼容的新 Android 11 x86 系统映像。

根据本文所写,这些新的兼容 ARM 的 Android 11 系统映像允许整个系统原生运行 x86,而需要 ARM 二进制文件的应用程序将在进程上下文中专门翻译为 ARM,这自然会导致比使用全 ARM 系统映像。

我的问题是——我想从 x86 的源代码编译我定制的 Android 11。有没有办法使用这些 ABI 构建映像,这些 ABI 介于基于 ARM 的应用程序和类似于 Google 发布的系统映像的操作系统之间?

标签: androidandroid-emulatorandroid-sourceavd

解决方案


这是在以前的版本中也使用来自 intel 的 libhoudini 实现的,这也是带有 arm Native 的应用程序可以在 x86 设备上运行的原因。Android-11 仿真器具有 Arm 提供的仿真(Arm 到 x-86)库。任何此类解决方案都可以通过称为 NativeBridge 的 Android 运行时接口连接。来自应用程序本机库的所有 android 本机调用都将路由到在仿真环境中加载和运行的 arm 库。

例如,NativeBridge 将加载 Main Emulation Library 以创建 Emulation Environment,并且将有关联的 arm 库用于 android 随附的 main emulation library。因此,来自 android 应用程序的 Native Arm 库的任何调用都将转到 Main Emulation 库,后者将加载相关的 android Arm Native 库、emulate(arm to x86) 并执行本机 android 代码。

绝对不是您问题的完整答案。


推荐阅读