测试开发工程师需要知道的 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

相关文章
|
8天前
|
存储 测试技术 数据库
在django中的测试架构
【6月更文挑战第13天】该文主要讨论Django项目的测试数据查询和测试架构。文中展示了如何创建`TestCase`子类进行测试,并提供了执行测试的不同选项,如增加详细信息、并行运行和选择性运行特定测试。
30 2
在django中的测试架构
|
20天前
|
运维 安全 网络架构
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
【6月更文挑战第1天】成为网络世界的超级英雄,利用网络模拟工具解决复杂架构难题!此工具提供安全的虚拟环境,允许自由设计和测试网络拓扑,进行性能挑战和压力测试。简单示例代码展示了创建网络拓扑的便捷性,它是网络设计和故障排查的“魔法棒”。无论新手还是专家,都能借助它探索网络的无限可能,开启精彩冒险!快行动起来,你会发现网络世界前所未有的乐趣!
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
|
28天前
|
Android开发 数据安全/隐私保护 iOS开发
ios和安卓测试包发布网站http://fir.im的注册与常用功能
ios和安卓测试包发布网站http://fir.im的注册与常用功能
22 0
ios和安卓测试包发布网站http://fir.im的注册与常用功能
|
1月前
|
运维 安全 测试技术
测试基础 学习测试你必须要知道的基础知识
测试基础 学习测试你必须要知道的基础知识
12 3
|
24天前
|
人工智能 算法 测试技术
探索软件自动化测试的未来:AI驱动的测试策略构建高效可靠的微服务架构:后端开发的新范式
【5月更文挑战第28天】 在软件开发的世界中,测试是确保产品质量的关键步骤。随着技术的进步和项目复杂性的增加,传统的手动测试方法逐渐显得力不从心。本文旨在探讨自动化测试的最新趋势——人工智能(AI)驱动的测试策略。我们将分析AI如何通过智能化的测试用例生成、测试执行优化以及结果分析来提高测试效率和精确性。文章还将讨论实施AI测试策略的挑战与机遇,为软件测试工程师提供未来技术转型的视角。 【5月更文挑战第28天】 在当今软件开发的快速迭代和复杂多变的环境中,传统的单体应用架构已经难以满足业务敏捷性和可扩展性的需求。微服务架构作为一种新的解决方案,以其服务的细粒度、独立部署和弹性伸缩等特性,正逐
|
25天前
|
Java 测试技术 持续交付
Java中的异常处理机制探索自动化测试在微服务架构中的实践与挑战
【5月更文挑战第27天】本文将深入探讨Java中的异常处理机制,包括异常的概念、分类以及如何使用try-catch-finally语句进行异常处理。文章还将介绍自定义异常的方法以及在实际开发中如何选择合适的异常处理策略。 【5月更文挑战第27天】 随着软件开发领域向微服务架构的转型,传统的软件测试方法面临诸多挑战。本文旨在探讨自动化测试在微服务环境下的应用实践及所面临的问题。我们将从微服务的特性出发,分析自动化测试的必要性,并深入讨论如何构建一个高效、鲁棒的自动化测试框架。文章还将介绍一系列创新的测试策略和工具选择,以及如何克服微服务带来的分布式复杂性。最后,通过案例研究,展示自动化测试在实
|
1月前
|
测试技术 Python
Python测试架构unittest
【4月更文挑战第19天】
10 3
|
1月前
|
测试技术 持续交付 Python
Python测试架构pytest
【4月更文挑战第19天】pytest 是一个强大且灵活的 Python 测试框架,它可以帮助你编写高效且可维护的测试。通过遵循上述基本架构指南,你可以开始使用 pytest 来提高你的 Python 项目的质量和可靠性。
13 2
|
1月前
|
JSON API 数据格式
Python测试架构requests-mock
【4月更文挑战第19天】
18 1
|
1月前
|
分布式计算 Hadoop 测试技术
Hadoop【基础知识 05】【HDFS的JavaAPI】(集成及测试)
【4月更文挑战第5天】Hadoop【基础知识 05】【HDFS的JavaAPI】(集成及测试)
65 8

热门文章

最新文章