Android手机中有多少比例是小端?

Jam*_* Ko 3 java android cpu-architecture endianness

编辑:与Android NDK的Endianness不同,因为该问题询问如何查找字节序,而不是有多少设备是big/little-endian.Mods,请不要将此标记为欺骗.


只是好奇,是否值得支持大/小端Android手机?我的应用程序中有一些对字节序敏感的代码,对于那些好奇的,它涉及将字符串序列化为long字节流.我认为我的手机是大端的,因为ByteBuffer.getLong()我从写入的字节流中以大端方式读取.

是否值得支持大/小端Android手机?我不确定普通的大端与小端比较.是否有可用的数据告诉我们每个的相对百分比?

谢谢.

ysh*_*vit 7

几乎所有支持的体系结构都是little-endian,有一个可能的例外.

Android 在此处列出其支持的ABI(应用程序二进制接口).基本上有三类:

  • 基于ARM的; 对于那些页面说每个"跟随小端ARM GNU/Linux ABI."
  • 基于x86的; 那些都是小端的
  • 基于MIPS; 该页面指定标准mips是little-endian.除了链接到官方页面之外,没有说明任何关于mips64的内容

所以mips64是唯一的问号.它支持双端架构.似乎第一批mips64智能手机芯片在2016年推出.我找不到哪款手机(如果有的话)实际使用它,但它似乎并不常见.

至于是否值得支持两者:这是你必须做出的判断.谁知道未来会带来什么?

  • 2020 更新:Android NDK 不再支持 mips/mips64,上面的 ABI 链接现在明确表示“Android 始终为小端”。 (3认同)
  • @jcgoble3 这肯定缩短了我的答案!谢谢你的更新。(抱歉,我花了几年时间才将其合并!) (2认同)