Android 是否抽象了设备架构?

Does Android abstract the device architecture?

我是 android 编程新手,我正在阅读这个问题的答案 Why shouldn't an Android app be written in C/C++ because you "simply prefer to program in C/C++"? 在 Devunwired 的第一个答案中。他提到 "your native code must be built into .so files (one for armv5, armv7 and x86) all packaged up into the same APK. This duplication of executable code makes your app 3x the size (i.e. a "fat binary"),除非您在分发应用程序时承担为每个架构构建单独的 APK 的任务

我的问题是,我一直认为操作系统通常提供对底层架构的抽象。所以如果我想在不同的环境中部署一个 c/c++ 程序,我需要使用为不同操作系统编写的编译器重新编译源代码,但是这个操作系统可能有支持不同架构的不同版本。 如果我是对的,那么为什么 Android 的情况会有所不同?

有时操作系统会将代码交给 CPU。二进制文件必须包含针对特定 CPU 的说明。 Java 每个 OS 和 CPU 都使相同的虚拟机可用,因此您没有相同的考虑因素。