资讯专栏INFORMATION COLUMN

【为什么要用真机】——谈模拟器与真机的差别

617035918 / 3999人阅读

摘要:安卓定制化现象严重,模拟器在某些方面往往达不到真机的真实水平。现在连系统都有余款了,安卓手机更是不用说了,主流的都有上千款。

现在很多开发者尤其是初学者做安卓开发的时候都是用的模拟器,但是众所周知,模拟器往往达不到真机真实水平,模拟的都是一些标准接口,对于一些非标准接口的BUG无法发现~,相信很多程序猿跟我有同样的遭遇,电脑配置不是很好,用模拟器往往是又卡又慢,甚是蛋疼。。。虽说android模拟器功能很强大,可以模拟各种机型,但在实际开发中还是有很多不一样的地方,没有一个真机测试还真难保证自己的应该能够在真机上顺畅跑起来,遇见这种问题解决完了又会有其他问题,没完没了,真没意思。。。

我先总结模拟器的几大缺点,然后再列举一些实际开发中,模拟器的一些坑。。。

1.模拟器太慢

模拟器的运行速度取决于PC的配置,如果PC使用了机械硬盘那么使用模拟器光是启动的时间就够泡一壶茶了。Genymotion这样的模拟器公认比较快,这是因为它对安卓系统进行了大量精简,然而这样的系统下开发出来的应用一旦来到真机上势必BUG不会少。

2.安卓定制化现象严重,模拟器在某些方面往往达不到真机的真实水平。

现在连IOS系统都有60余款了,安卓手机更是不用说了,主流的都有上千款。国内的手机厂商们热衷于对安卓系统进行深度定制,这也让开发者们操碎了心。小米、魅族、锤子这样的深度定制系统,应用开发好以后同样需要使用真实设备来适配。

3.模拟器不能模拟所有的API

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

4.真机调试更能清晰真实的反映出开发过程中出现的问题;而模拟器性能比较差,在模拟器上不一定能发现。

5.真机测试更能支持横竖屏都方便,有一些情况模拟机不行。

6.搞3D图形图像时候,真机支持,虚拟机不一定支持OpenGL ES。

7.真机调试速度快,模拟器速度慢

列举实际开发遇到的不同之处:

1.模拟器上安装的apk签名是debug模式的,发布应用到市场上要用另外的签名。

2.模拟器上用px像素可以正常显示,但在真机上有可能布局变得面目全非,很难看,真机上必须用dip让系统自动识别才能达到预期效果。

3.模拟器上空格用 可以正常显示,但到真机(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

今天就先到这,喜欢就点个推荐,收藏下吧,谢谢支持。。。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/12565.html

相关文章

  • 真机做远程调试的两种方式

    摘要:需要的话就点这里吧有了这个云手机工具以后,点进去选一台手机,比如像我之前做远程调试的时候用的是一台点击租用以后你会看到这个真实的手机画面你可以用鼠标点击或者滑动屏幕,这台手机也会跟着动。 很多人在android 开发调试的时候会碰到这样一个问题,把手机和电脑通过USB连接上后两边都没有提示.重启手机和电脑还是有没有反应,只有充电的指示却没有USB连接的提示,这个时候你就会无法进行真机调...

    hlcfan 评论0 收藏0
  • Google新技术:Instant App全拆解(3)——着手

    摘要:系统环境要求开发不是在所有的集成开发环境都可以进行的。这里注意,的架构方式不能为的方式,绝对不能真机的准备工作运行于及以上的系统手机厂商亲儿子三星服务框架已安装在手机上。 作者:Darkbug原文标题:Google新技术:Instant App全拆解(3)——着手原文链接:https://segmentfault.com/a/11...首发地址:http://www.doncc.org...

    CNZPH 评论0 收藏0
  • Google新技术:Instant App全拆解(3)——着手

    摘要:系统环境要求开发不是在所有的集成开发环境都可以进行的。这里注意,的架构方式不能为的方式,绝对不能真机的准备工作运行于及以上的系统手机厂商亲儿子三星服务框架已安装在手机上。 作者:Darkbug原文标题:Google新技术:Instant App全拆解(3)——着手原文链接:https://segmentfault.com/a/11...首发地址:http://www.doncc.org...

    big_cat 评论0 收藏0
  • Google新技术:Instant App全拆解(3)——着手

    摘要:系统环境要求开发不是在所有的集成开发环境都可以进行的。这里注意,的架构方式不能为的方式,绝对不能真机的准备工作运行于及以上的系统手机厂商亲儿子三星服务框架已安装在手机上。 作者:Darkbug原文标题:Google新技术:Instant App全拆解(3)——着手原文链接:https://segmentfault.com/a/11...首发地址:http://www.doncc.org...

    amc 评论0 收藏0
  • Google新技术:Instant App全拆解(3)——着手

    摘要:系统环境要求开发不是在所有的集成开发环境都可以进行的。这里注意,的架构方式不能为的方式,绝对不能真机的准备工作运行于及以上的系统手机厂商亲儿子三星服务框架已安装在手机上。 作者:Darkbug原文标题:Google新技术:Instant App全拆解(3)——着手原文链接:https://segmentfault.com/a/11...首发地址:http://www.doncc.org...

    Heier 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<