测试开发工程师需要知道的 Android和iOS CPU架构基础知识

简介: 测试开发工程师需要知道的 Android和iOS CPU架构基础知识

类型


CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型的CPU,下面是几个常见的类型:


  • ARM公司: arm架构
  • Intel公司: x86和x86-64系列架构
  • AMD公司: x86和x86-64系列架构


其中电脑PC一般是用Intel和AMD公司的x86和x86-64系列的CPU,手机一般是用arm的CPU,主要是因为arm处理器功耗低、体积小、非常适合手机这种嵌入式设备的使用场景。


iOS


armv7、armv7s、arm64、arm64e这些都是ARM处理器的指令集,下面看一下iOS真机和模拟器的CPU架构区别:


模拟器

  • i386:32位模拟器
  • x86-64:64位模拟器


真机

  • arm64e :64位处理器,例如:iPhone XS | iPhone XS Max | iPhone XR | iPhone 11 | iPhone 11 Plus | iPhone 12 等新一代机型
  • arm64:64位处理器,例如:iPhone 5S | iPhone 6 | iPhone 6 Plus | iPhone 6S | iPhone 6S Plus | iPhone 7 | iPhone 7 Plus | iPad (2018) | iPhone 8 | iPhone 8 Plus | iPhone X
  • armv7s:32位处理器,例如:iPhone 5|iPhone 5C|iPad4(iPad with Retina Display)
  • armv7:32位处理器,例如:iPhone 4|iPhone 4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4


Android


在讲Android的CPU架构前先来看看ABI的概念,想必很多端上的测试开发同学在日常工作中都有听业务研发提到过Android应用ABI的支持情况。


ABI简介

不同的Android手机使用不同的CPU,而不同的CPU又支持不同的指令集,CPU 与指令集的每种组合都有专属的应用二进制接口,也就是我们上面提到的ABI。


CPU架构和ABI的关系

应用程序二进制接口(Application Binary Interface)定义了二进制文件,特别是.so文件如何运行在相应的系统平台上(从使用的指令集、内存对齐到可用的系统函数库等),在Android系统上,每一个CPU架构都对应一个ABI:armeabi,armeabi-v7a,arm64-v8a,x86,mips,mips64,x86_64。


CPU架构

目前主要有以下几种CPU架构:

  • ARMv5:第5、6代的32位ARM处理器,缺少对浮点数计算的硬件支持,使用软件浮点运算,在需要大量计算时有性能瓶颈,虽然速度慢,但通用性强,支持的ABI类型:armeabi
  • ARMv7:第7代的32位ARM处理器,是目前的主流版本,使用硬件浮点运算,具有高级扩展功能,支持的ABI类型:armeabi-v7a 和 armeabi
  • ARMv8:第8代的64位ARM处理器,支持的ABI类型:arm64-v8a、armeabi-v7a和armeabi(可用32位模式运行armeabi-v7a和armeabi);
  • x86:32位intel处理器,一般用于平板和模拟器,支持的ABI类型:armeabi(性能有所损耗) 和 x86
  • x86_64:64位intel处理器,一般用于平板和模拟器,支持的ABI类型:x86 和 x86_64
  • MIPS/MIPS64:极少用于手机可以忽略,支持的ABI类型:mips和mips64


注意:在最新的Mac M1系列电脑上也可以运行ARM的模拟器了,CPU架构类型为arm64-v8a

相关文章
|
2月前
|
存储 人工智能 编译器
【AI系统】CPU 指令集架构
本文介绍了指令集架构(ISA)的基本概念,探讨了CISC与RISC两种主要的指令集架构设计思路,分析了它们的优缺点及应用场景。文章还简述了ISA的历史发展,包括x86、ARM、MIPS、Alpha和RISC-V等常见架构的特点。最后,文章讨论了CPU的并行处理架构,如SISD、SIMD、MISD、MIMD和SIMT,并概述了这些架构在服务器、PC及嵌入式领域的应用情况。
86 4
|
7月前
|
缓存 C语言 计算机视觉
程序与技术分享:CPU0处理器的架构及应用
程序与技术分享:CPU0处理器的架构及应用
|
3月前
|
Java 测试技术 程序员
「测试线排查的一些经验-上篇」&& 后端工程师
「测试线排查的一些经验-上篇」&& 后端工程师
25 1
|
4月前
|
设计模式 架构师 Java
Java开发工程师转架构师需要学习什么
Java开发工程师转型为架构师需掌握多项技能:精通Java及框架、数据库与分布式系统;熟悉设计模式与架构模式;积累项目经验;提升沟通与领导力;持续学习新技术;培养系统设计与抽象能力;了解中间件及开发工具;并注重个人特质与职业发展。具体路径应结合个人目标与实际情况制定。
80 18
|
4月前
|
存储 缓存 开发者
CPU的架构涵盖哪些方面
CPU(中央处理单元)的架构指的是CPU的设计和组织方式,包括其内部结构、数据通路、指令集、寄存器配置、存储器管理和输入输出等一系列设计原则和技术的综合体现。
132 1
|
5月前
|
算法
测试工程师的技能升级:LeetCode算法挑战与职业成长
这篇文章通过作者亲身体验LeetCode算法题的过程,探讨了测试工程师学习算法的重要性,并强调了算法技能对于测试职业成长的必要性。
85 1
测试工程师的技能升级:LeetCode算法挑战与职业成长
|
4月前
|
存储 缓存 开发者
CPU的架构指什么?
CPU(中央处理单元)的架构指的是CPU的设计和组织方式,包括其内部结构、数据通路、指令集、寄存器配置、存储器管理和输入输出等一系列设计原则和技术的综合体现。
355 0
|
5月前
|
运维 测试技术
测试与开发问题之测试开发工程师与软件开发工程师和测试工程师如何区别
测试与开发问题之测试开发工程师与软件开发工程师和测试工程师如何区别
|
6月前
|
NoSQL Redis 开发工具
Redis性能优化问题之检查 Redis 实例是否启用了透明大页机制,如何解决
Redis性能优化问题之检查 Redis 实例是否启用了透明大页机制,如何解决
|
5月前
|
监控 安全 测试技术
测试与开发问题之为什么测试开发工程师需要有安全生产意识,文档编写能力对于测试开发工程师的重要性如何理解
测试与开发问题之为什么测试开发工程师需要有安全生产意识,文档编写能力对于测试开发工程师的重要性如何理解

热门文章

最新文章