我有一台 Android 设备(SAMSUNG Galaxy Tab Active2 SM-T397U),配有Exynos 7870 SoC。Exynos 7870使用 8 个实现Armv8-A 架构的Cortex A-53内核。不过,它不支持arm64-v8 ABI,也不清楚它支持哪种指令集。
有多个 Android 应用程序可以提取设备的系统 CPU 和 SoC 信息。
使用这样一个应用程序(AIDA64),它将指令集列为“64位ARM”,但支持的ABI仅列为armeabi-v7a和armeabi(下面的屏幕截图)。
另一个应用程序 (DroidInfo) 将 CPU 架构列为“ARMv7-A”,指令集也列为“armeabi-v7a”和“armeabi”(下面的屏幕截图)
DroidInfo 列出 SoC 模型和支持的指令集的屏幕截图
我的印象是,实现 v8a 架构的 CPU 核心能够利用armeabi-v8a ABI 来实现最优化的性能。
如果是这种情况,我想了解为什么该 SoC 仅支持 armeabi-v7a ABI 而不是 arm64-v8a ABI。ABI 上的 Android 开发人员页面针对 arm64-v8a ABI 进行了说明:
“此 ABI 适用于支持 AArch64 的基于 ARMv8 的 CPU。” …