模拟器与真机的区别(苹果iOS/安卓Android)?

『导语』

在前端苹果iOS或者安卓Android开发中,经常用到模拟器,暂时代替真机进行调试功能。

但是,基于真实硬件的API由于模拟器本身的限制是不能被模拟出来的,因此应用但凡需要调用这些API的,都应该选择真机调试。

模拟器和真机有什么区别呢?主要体现在以下几点:
序号 功能 真机Device 模拟器Simulator 备注
Email、<br />电话、<br />短信 支持 ✅ 不支持❎ 例如:<br />模拟器不支持呼叫和接听实际来电,但可以通过控制台模拟电话呼叫(呼入和呼出)
相机、<br />视频捕捉<br />(如:录视频,拍照) 支持 ✅ 不支持❎ 例如:<br />模拟器不可以进行二维码的扫描实现。模拟器虽然支持音乐/视频播放,但是不支持视频录制,拍照等
音频输入<br />(录音) 支持 ✅ 不支持❎ 例如:<br />模拟器可以将文字以语音模式播放,但是不能录制语音
扩展耳机<br />(插耳机) 支持 ✅ 不支持❎ 例如:模拟器不支持插入耳机进行听歌,毕竟引荐不支持呀!
电池电量水平和充电状态 支持 ✅ 不支持❎ 例如:<br />模拟器电量始终满格状态,如果做电量开发显示等,需要真机硬件系统才能体现出来。
SD卡的插入/弹出 支持 ✅ 不支持❎ 例如:模拟器是个软件,不能支持插入SD卡来显示扩充容量相关信息
蓝牙 支持 ✅ 不支持❎ 例如:<br />模拟器不支持模拟器蓝牙传图,传歌等功能
USB连接 支持 ✅ 不支持❎ 例如:<br />模拟器当然不能插入USB接口啦
连接状态 支持 ✅ 不支持❎ 例如:<br />模拟器不能判断USB接口的连接状态,毕竟模拟器根本就不支持USB连接。
大小写敏感 敏感 ✅ 不敏感❎ 例如:<br />在做Document下文件移动时发觉在模拟器上运行正常,但是在真机上却找不到文件。这才发现真机与模拟器的大小写敏感不一致
处理器 arm系列 i386处理器 例如:<br /><br />真机指令集:arm(armv6、armv7、armv7s、armv8、armv64)<br /><br />模拟器指令集x86 (i386、x86_64)
iOS 开发代码宏判断是模拟器还是真机?

一般项目中,可以使用宏定义来判断模拟器还是真机,这无疑是有效的。

#if TARGET_IPHONE_SIMULATOR
#define SIMULATOR 1
#elif TARGET_OS_IPHONE
#define SIMULATOR 0
#endif

这样直接就可以调用后加以判断是真机还是模拟器,来作出不同的动作

  • 参考链接:

1.iOS中获取当前是真机还是模拟器
2.Android模拟器和真机有什么区别呢?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容