(评论)
(comments)
原始链接: https://news.ycombinator.com/item?id=39095337
Android x86/ARM 兼容性层(针对 x86 架构优化的应用程序)称为“应用程序兼容性转发”,自 Android N 起正式支持,通常通过 Dalvik VM 中的 ART 编译器实现,允许一定程度的交叉编译,并且最终应包括 将 x86 应用程序转换为 ARM 或反之亦然的框架(请参阅 https://android-developers.google.com/trouble ...)。 然而,它往往工作得很差(如果有的话),特别是对于较旧的、未优化的 ARM 应用程序,而不是 x86 <-> ARM 转换库,例如 QEMU(或更罕见的是 Virtualbox)或 KVM。 主要是由于二进制翻译开销、ARM 编译器中的解释开销、翻译应用程序缺少运行时依赖关系以及系统调用接口和特殊指令方面缺乏 x86 ISA 扩展。 虽然理论上可以移植/翻译,但像 Abiword、Fiji、OE、MS Office 套件、Adobe Suite 等应用程序,或者 WINE 本身,通常并不是那种会神奇地变得令人愉快或合理的东西,或者足够实用的东西 在这样的平台上远程享受。 根据经验,对于 Android(包括 ARM),与桌面操作系统发行版(例如 Debian)相反,即使这种翻译变得相当可行和/或足够高效以实际有用或实用,它并不总是 结果特别令人愉快或愉快,除非相关应用程序明确(或隐含)设计/构建为跨 ARM 和 x86 平台、或跨 iOS 和 Android 平台、或具有多平台功能(例如 Etherpad、Slack)无缝且愉快地工作。 com、Zulip),而不是将每个特定平台(设备)视为一个完全独立的宇宙,从根本上与其他宇宙互斥。 此类努力通常取决于某些设计模式、运行时条件或体系结构的细微差别。
800x600, around 20 fps, settings on high.
reply