如今不少開發者尤爲是初學者作安卓開發的時候都是用的模擬器,可是衆所周知,模擬器每每達不到真機真實水平,模擬的都是一些標準接口,對於一些非標準接口的BUG沒法發現~,相信不少程序猿跟我有一樣的遭遇,電腦配置不是很好,用模擬器每每是又卡又慢,甚是蛋疼。。。雖然說android模擬器功能很強大,能夠模擬各類機型,但在實際開發中仍是有不少不同的地方,沒有一個真機測試還真難保證本身的應該可以在真機上順暢跑起來,碰見這種問題解決完了又會有其餘問題,沒完沒了,真沒意思。。。android
我先總結模擬器的幾大缺點,而後再列舉一些實際開發中,模擬器的一些坑。。。shell
1.模擬器太慢segmentfault
模擬器的運行速度取決於PC的配置,若是PC使用了機械硬盤那麼使用模擬器光是啓動的時間就夠泡一壺茶了。Genymotion這樣的模擬器公認比較快,這是由於它對安卓系統進行了大量精簡,然而這樣的系統下開發出來的應用一旦來到真機上勢必BUG不會少。windows
2.安卓定製化現象嚴重,模擬器在某些方面每每達不到真機的真實水平。app
如今連IOS系統都有60餘款了,安卓手機更是不用說了,主流的都有上千款。國內的手機廠商們熱衷於對安卓系統進行深度定製,這也讓開發者們操碎了心。小米、魅族、錘子這樣的深度定製系統,應用開發好之後一樣須要使用真實設備來適配。工具
3.模擬器不能模擬全部的API佈局
Email、電話、短信等基於真實硬件的API因爲模擬器自己的限制是不能被模擬出來的,所以應用但凡須要調用這些API的,都應該選擇真機調試。性能
4.真機調試更能清晰真實的反映出開發過程當中出現的問題;而模擬器性能比較差,在模擬器上不必定能發現。測試
5.真機測試更能支持橫豎屏都方便,有一些狀況模擬機不行。字體
6.搞3D圖形圖像時候,真機支持,虛擬機不必定支持OpenGL ES。
7.真機調試速度快,模擬器速度慢
列舉實際開發遇到的不一樣之處:
1.模擬器上安裝的apk簽名是debug模式的,發佈應用到市場上要用另外的簽名。
2.模擬器上用px像素能夠正常顯示,但在真機上有可能佈局變得面目全非,很難看,真機上必須用dip讓系統自動識別才能達到預期效果。
3.模擬器上空格用\t能夠正常顯示,但到真機(ME525+)上就不起做用了。
4.模擬器調用郵件服務報錯,到真機上會彈出選擇。還有其餘一些功能也是如此。
5.模擬器上建立快捷方式的提示和真機的差異比較大,模擬器上提示有部分英文的,真機上全中文的,並且有連續幾個不一樣內容的提示。
6.模擬器上看到的輸入框效果比較大,真機上看明顯小了不少。
7.模擬器上(2.3.3版本的)輸入框、單選框等焦點狀態時邊框是黃色的,但真機上是藍色的。
8.模擬器上發佈程序後會本身啓動程序彈出界面,真機上經過電腦安裝後則不會彈出來。
9.模擬器不能震動,真機上纔看有效果。
10.模擬器能夠直接鏈接本地電腦局域網ip,真機不行。
11.模擬器能夠模擬發送短信 撥打電話 gps定位功能,用真機須要兩臺手機才能用,不能經過模擬器和一臺真機實現,並且真機不能經過模擬端口實現(須要真實撥打電話和發送短信)
12.模擬器沒法調試藍牙硬件設備相關的接口,必需要真機才能跑
13.模擬器沒法測試多點觸摸(好比兩個手指放大文本字體大小)的功能
模擬器與真機如何調試
1.模擬器調試
運行源碼或SDK中的emulator,加參數
2.真機調試
1) 用usb線鏈接G1硬件和PC
2) 如果windows系統,則安裝驅動
3) 用源碼或SDK中的adb命令看硬件是否鏈接成功
$ adb devices正常調試
4) 注意:
a) 在Linux鏈接真機時需使用root權限
b) 若是以前鏈接過模擬器,最好鏈接前先殺掉adb後臺進程
$ killall adb
3.Eclipse中調試
若鏈接真機,未打開模擬器時,直接鏈接真機調試
若未鏈接真機,已打開模擬器時,在當前模擬器中調試
若未鏈接真機,也未打開模擬器時,打開模擬器調試
若只開多個真機或多個模擬器時,同時有多個可鏈接的設備,彈出列表供用戶選擇
4.命令行中使用adb工具調試
鏈接多個設備時,須要用命令行參數指示設備名或設備類型
$ adb –s 設備名shell 設備名由adb devices列出
$ adb –d shell 與硬件設備相連
$ adb –e shell 與模擬器相連
5.雲手機調試(若是不想用模擬器,真機又不夠,或者沒有合適的真機,能夠選擇這種調試)
這個我以前寫過一個專門的教程,你們能夠參考我以前發的文章:http://segmentfault.com/a/1190000004314205
今天就先到這,喜歡就點個推薦,收藏下吧,謝謝支持。。。