0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Android模拟器执行ARM应用

汽车玩家 来源:互联网科技密 作者:互联网科技密 2020-04-13 09:34 次阅读

随着 Android 11 开发者预览版的发布 ,我们同时也推出了 Android 11 系统映像。新的系统映像在执行 ARM 二进制文件方面取得了显著的性能提升。此前,依赖 ARM 库且无法构建 x86 版本应用的开发者只能使用完整的 ARM 模拟系统映像 (其速度远低于在 x86 设备上运行 x86 系统映像) 或者实体机。Android 11 系统映像能够在不影响整个系统的前提下,直接将 ARM 指令转换成 x86 指令。开发者无需搭建高负载的 ARM 环境即可执行 ARM 二进制文件并进行测试。

全新的 Android 11 (Google API) x86 系统映像支持 ARM 应用二进制接口 (ABI),较旧版本的 Android Oreo 系统映像并不提供该支持

Android 11 系统映像 https://developer.android.google.cn/studio/releases/emulator#support_for_arm_binaries_on_android_9_and_11_system_images

技术细节

我们可能需要结合具体情景来说明这项新技术的重要性,尤其是如果您只使用 Kotlin 或 Java 编程语言来构建应用的话。Kotlin 和 Java 编程语言均在 ART (Android 运行时) 上执行,但 C++ 则与它们不同,Android 应用中的所有 C++ 指令会直接编译为机器指令,也就是说,目标设备的平台架构决定着 C++ 的编译方法。移动手机一般搭载 ARM 处理器,因此,您为应用添加的许多 C++ 依赖项 (例如摄像头条形码扫描库) 仅与 ARM 处理器兼容。在这种情形下,如果您使用基于 x86 处理器的设备进行开发工作,便会遇到应用无法运行的问题。

过去,开发者需要通过模拟器镜系统映像搭建一个完整的 ARM 环境,才能绕过这个限制并在 x86 机器上执行 ARM 应用。但是,把整个系统的 ARM 指令都转换成 x86 指令会造成过高的性能负荷,因此与基于 x86 的系统映像相比,完整的 ARM 系统映像在 x86 宿主机上的运行速度会慢很多,而且它还无法使用 x86 处理器提供的硬件加速和 CPU 虚拟化技术。

全新的Android 11 系统映像与 ARM 兼容,它不仅允许整个系统在本机运行 x86 指令,而且还可以照常使用虚拟化技术。当应用的某个进程需要使用 ARM 二进制代码时,代码仅会在该进程内被转换成 x86 指令,其余进程将继续在 x86 环境内执行,包括 Android 运行时 (ART) 以及其它性能关键库,例如 libGLES和 libvulkan。除此以外,指令转换器也不会执行低层的硬件特定库,从而避免高成本的内存访问检测和相应的性能影响。在 ARM 公司的协作下,新的模拟器系统映像在本地和持续集成框架内均可运行。

Android 11 系统映像https://developer.android.google.cn/studio/releases/emulator#support_for_arm_binaries_on_android_9_and_11_system_images

libGLEShttps://developer.android.google.cn/ndk/guides/stable_apis#graphics

libvulkanhttps://developer.android.google.cn/ndk/guides/graphics/design-notes

下一步

如果您之前由于缺乏高性能的 ARM 支持,去选择了实体机而非模拟器,不妨尝试一下 Android 11 系统映像。此映像文件目前已随 Android 11 开发者预览版一同开放下载。您可通过 SDK Manager 或者 Android Virtual Device Manager将最新版本的系统映像下载至 Android Studio。

使用 Android Virtual Device Manager 创建一个运行 Android 11 的 AVD

Android 11 系统映像https://developer.android.google.cn/studio/releases/emulator#support_for_arm_binaries_on_android_9_and_11_system_images

Android Virtual Device Managerhttps://developer.android.google.cn/studio/run/managing-avds#createavd

一旦应用在模拟器中成功运行后,请考虑适配 Chrome OS。Chrome OS 同样也支持在 x86 笔记本上执行 ARM 版本的 Android 应用。通过构建适用于 Chrome OS 的应用,您可以挖掘大屏幕设备生态圈所蕴含的海量机遇,让全球更多的用户认识您的应用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8643

    浏览量

    361659
  • Android
    +关注

    关注

    12

    文章

    3848

    浏览量

    125603
收藏 人收藏

    评论

    相关推荐

    如何依托软件引擎高效完成GNSS仿真?#GNSS仿真 #GNSS模拟 #GNSS #GNSS模拟器

    模拟器GNSS
    虹科卫星与无线电通信
    发布于 :2024年04月11日 18:24:01

    【鸿蒙 HarmonyOS】鸿蒙手机模拟器 ( 鸿蒙远程模拟器 | 鸿蒙远程模拟器运行手机应用 )

    一、鸿蒙远程模拟器 选择 菜单栏 / Tools / HVD Manager , 首次点击 , 会提示下载模拟器相关资源 , 下载完成后可以通过浏览器连接远程模拟器 ;   点击 HVD
    的头像 发表于 01-26 15:02 1116次阅读
    【鸿蒙 HarmonyOS】鸿蒙手机<b class='flag-5'>模拟器</b> ( 鸿蒙远程<b class='flag-5'>模拟器</b> | 鸿蒙远程<b class='flag-5'>模拟器</b>运行手机应用 )

    什么是光伏模拟器?光伏模拟器能做什么?

    什么是光伏模拟器?光伏模拟器能做什么? 光伏模拟器是一种用来模拟太阳能光伏电池的工作原理和性能的软硬件设备。它可以提供光伏电池在不同光照、温度和环境条件下的电流、电压、功率等参数。光伏
    的头像 发表于 11-10 15:57 722次阅读

    鸿蒙原生应用开发-DevEco Studio本地模拟器的使用

    及以上。 macOS系统:内存推荐为8GB及以上。如果是ARM版本的macOS,macOS版本需在12.2及以上,否则将无法运行本地模拟器。 不支持在虚拟机系统上运行本地模拟器,例如不支持在
    发表于 11-07 14:21

    基于X86平台的ARM指令集模拟器的设计方案

    电子发烧友网站提供《基于X86平台的ARM指令集模拟器的设计方案.pdf》资料免费下载
    发表于 11-06 11:54 0次下载
    基于X86平台的<b class='flag-5'>ARM</b>指令集<b class='flag-5'>模拟器</b>的设计方案

    光伏模拟器如何做MPPT追踪

    光伏模拟器采用全桥移相软开关技术,ARM、DSP双CPU控制、高速DSP进行PID运算,直接输出PWM的高性能直流电源,可模拟太阳能电池板输出特性,模拟不同光照和温度下I-V曲线通过填
    的头像 发表于 11-02 20:27 250次阅读
    光伏<b class='flag-5'>模拟器</b>如何做MPPT追踪

    基于X86平台的ARM指令集模拟器设计

    电子发烧友网站提供《基于X86平台的ARM指令集模拟器设计.pdf》资料免费下载
    发表于 10-11 15:03 0次下载
    基于X86平台的<b class='flag-5'>ARM</b>指令集<b class='flag-5'>模拟器</b>设计

    泰克推出增强型Keithley KickStart电池模拟器应用程序

    SMUs,让用户能够轻松生成电池模型,进行电池模拟,并为消费类无线物联网设备、汽车和工业应用执行电池循环测试。 KickStart电池模拟器应用
    的头像 发表于 09-19 12:00 406次阅读
    泰克推出增强型Keithley KickStart电池<b class='flag-5'>模拟器</b>应用程序

    Linux桌面终端模拟器推荐

    终端模拟器是Linux操作系统中常用的工具,它提供了一个图形界面来模拟命令行环境。终端模拟器不仅可以执行命令行操作,还具有许多功能和特性,如多标签页、自定义配置、分屏显示等,使得用户可
    发表于 09-08 16:36 405次阅读
    Linux桌面终端<b class='flag-5'>模拟器</b>推荐

    什么是太阳能光伏阵列模拟器

    什么是太阳能光伏阵列模拟器? 太阳能光伏阵列模拟器是一种电子设备,可以模拟出太阳能光伏阵列的电气特性。这个设备可以方便地测试和评估太阳能光伏电池阵列的性能和可靠性。 太阳能光伏阵列模拟器
    的头像 发表于 09-02 17:12 866次阅读

    ARM设计仿真模型用户指南

    行业标准的Verilog模拟器配合使用。 DSM执行速度在每秒5-500个周期的范围内,具体取决于: ·模拟器接口效率。 ·它被实例化的设计的复杂性。 ·原始设计的复杂性。 DSM包括: ·一个功能
    发表于 08-12 06:44

    华为eNSP模拟器安装教程

    华为eNSP模拟器安装教程
    的头像 发表于 08-11 10:57 2177次阅读
    华为eNSP<b class='flag-5'>模拟器</b>安装教程

    SEGGER Embedded Studio中增加了ARM64模拟器

    SEGGER从Embedded Studio for ARM v7.22版本开始添加了一个完整的指令集模拟器
    的头像 发表于 06-30 11:07 550次阅读

    多多练习。模拟器就可以。 #来快手教技能#硬声创作季

    模拟器
    或许
    发布于 :2023年05月30日 17:01:31

    光伏模拟器太阳能电池阵列模拟PV源

    光伏模拟器
    拓沃得TEWERD
    发布于 :2023年05月16日 16:37:57