Android是否抽象了设备架构

Does Android abstract the device architecture?

本文关键字:是否 抽象 Android      更新时间:2023-10-16

我是android编程的新手,我正在阅读这个问题的答案为什么不应该';Android应用程序不能用C/C++编写,因为你";只是更喜欢用C/C++编程";?在Devunwred的第一个回答中。他提到"您的本地代码必须内置到.so文件中(一个用于armv5、armv7和x86)所有文件都打包到同一个APK中。这种可执行代码的重复会使您的应用程序的大小增加3倍(即"胖二进制"),除非您在分发应用程序时承担为每个架构构建单独APK的任务"

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

在某个时刻,操作系统将代码移交给CPU。二进制文件必须有针对特定CPU的指令。使用Java时,每个操作系统和CPU都可以使用相同的虚拟机,因此您不会有相同的考虑因素。