lar*_*am1 15 android arm mips android-x86
为了识别Android设备的平台,似乎java系统属性"os.arch"就足够了:
Log.i("mytag", "os.arch: " + System.getProperty("os.arch"));
Run Code Online (Sandbox Code Playgroud)
大多数ARM设备响应: os.arch: armv7l
x86模拟器响应: os.arch: i686
真正的英特尔和MIPS设备有哪些输出?
x86 Android设备:??????
mips安卓设备:??????
还有其他平台和变种吗?
编辑Google TV:
看起来Google TV使用'none'来构建代码.
Vizio Co-Star:os.arch:armv7l,Build.CPU_ABI/Build.CPU_ABI2:none/unknown
Logitech Revue:os.arch:i686,Build.CPU_ABI/Build.CPU_ABI2:none/unknown
编辑澄清意图:
这里的目标是将实际设备列表的编译与其输出进行众包.AOSP代码的预期输出很有意思,但设备制造商(如上面的旧Google TV设备)可能会偏离提供AOSP代码预期的输出.
这些值来自 Linux 结构。它们可以通过 shell 从 shell 中显示cat /proc/cpuinfo。ARM 在arch/arm/mm目录中定义它们。从这个目录中,
grep cpu_arch_name * | grep string | cut -d \, -f2 | sort | uniq
Run Code Online (Sandbox Code Playgroud)
arm7l表示“little endian”模式,但这是可选的并且取决于内核。我认为大多数 ARM 内核将是“小端”,除非它是一个以网络为中心的产品(如 Android 路由器)。这与 相同uname -m。在 x86 上,它返回“i686”,在 PowerPC 上,它返回“ppc”。我没有 MIPS 系统,但我的猜测是“mips”,但它可能是cpu-probe.c中找到的分类
Linux 中有 20 多种架构,每种架构都有不同的 CPU 版本。对于当前的 Android 端口来说,答案要少得多。然而,它们中的任何一个都可能在将来被使用。我认为ARM是唯一发送子架构的。
另请参阅:uname()手册页、维基百科的Uname、服务器故障的 uname 机器、OpenJdk 邮件列表
| 归档时间: |
|
| 查看次数: |
8692 次 |
| 最近记录: |