『導(dǎo)語(yǔ)』
在前端蘋(píng)果iOS
或者安卓Android
開(kāi)發(fā)中馒过,經(jīng)常用到模擬器,暫時(shí)代替真機(jī)進(jìn)行調(diào)試功能酗钞。
但是腹忽,基于真實(shí)硬件
的API由于模擬器
本身的限制是不能被模擬出來(lái)的,因此應(yīng)用但凡需要調(diào)用這些API的算吩,都應(yīng)該選擇真機(jī)
調(diào)試留凭。
模擬器和真機(jī)有什么區(qū)別呢佃扼?主要體現(xiàn)在以下幾點(diǎn):
序號(hào) | 功能 | 真機(jī)Device | 模擬器Simulator | 備注 |
---|---|---|---|---|
① |
Email 偎巢、<br />電話(huà) 、<br />短信
|
支持 ? | 不支持? | 例如:<br />模擬器不支持呼叫和接聽(tīng)實(shí)際來(lái)電兼耀,但可以通過(guò)控制臺(tái)模擬電話(huà)呼叫(呼入和呼出) |
② |
相機(jī) 压昼、<br />視頻捕捉 <br />(如:錄視頻求冷,拍照) |
支持 ? | 不支持? | 例如:<br />模擬器不可以進(jìn)行二維碼的掃描實(shí)現(xiàn)。模擬器雖然支持音樂(lè)/視頻播放窍霞,但是不支持視頻錄制匠题,拍照等 |
③ |
音頻輸入 <br />(錄音) |
支持 ? | 不支持? | 例如:<br />模擬器可以將文字以語(yǔ)音模式播放,但是不能錄制語(yǔ)音 |
④ |
擴(kuò)展耳機(jī) <br />(插耳機(jī)) |
支持 ? | 不支持? | 例如:模擬器不支持插入耳機(jī)進(jìn)行聽(tīng)歌但金,畢竟引薦不支持呀韭山! |
⑤ |
電池 電量水平和充電狀態(tài) |
支持 ? | 不支持? | 例如:<br />模擬器電量始終滿(mǎn)格狀態(tài),如果做電量開(kāi)發(fā)顯示等冷溃,需要真機(jī)硬件系統(tǒng)才能體現(xiàn)出來(lái)钱磅。 |
⑥ |
SD卡 的插入/彈出 |
支持 ? | 不支持? | 例如:模擬器是個(gè)軟件,不能支持插入SD卡來(lái)顯示擴(kuò)充容量相關(guān)信息 |
⑦ | 藍(lán)牙 |
支持 ? | 不支持? | 例如:<br />模擬器不支持模擬器藍(lán)牙傳圖似枕,傳歌等功能 |
⑧ |
USB 連接 |
支持 ? | 不支持? | 例如:<br />模擬器當(dāng)然不能插入U(xiǎn)SB接口啦 |
⑨ | 連接狀態(tài) |
支持 ? | 不支持? | 例如:<br />模擬器不能判斷USB接口的連接狀態(tài)盖淡,畢竟模擬器根本就不支持USB連接。 |
⑩ | 大小寫(xiě)敏感 |
敏感 ? | 不敏感? | 例如:<br />在做Document 下文件移動(dòng)時(shí)發(fā)覺(jué)在模擬器上運(yùn)行正常凿歼,但是在真機(jī)上卻找不到文件褪迟。這才發(fā)現(xiàn)真機(jī)與模擬器的大小寫(xiě)敏感不一致 |
? | 處理器 |
arm 系列 |
i386 處理器 |
例如:<br /><br />真機(jī)指令集:arm(armv6、armv7答憔、armv7s味赃、armv8、armv64 )<br /><br />模擬器指令集x86 (i386攀唯、x86_64)
|
iOS 開(kāi)發(fā)代碼宏判斷是模擬器還是真機(jī)洁桌?
一般項(xiàng)目中,可以使用宏定義來(lái)判斷模擬器還是真機(jī)侯嘀,這無(wú)疑是有效的另凌。
#if TARGET_IPHONE_SIMULATOR
#define SIMULATOR 1
#elif TARGET_OS_IPHONE
#define SIMULATOR 0
#endif
這樣直接就可以調(diào)用后加以判斷是真機(jī)還是模擬器,來(lái)作出不同的動(dòng)作
-
參考鏈接:
1.iOS中獲取當(dāng)前是真機(jī)還是模擬器
2.Android模擬器和真機(jī)有什么區(qū)別呢戒幔?