几种Android模拟器对比
2016-01-04 TECH android andyroid bluestacks chromedriver genymotion SDK selendroid windroy
一、Google Android SDK
先安装jdk
http://www.oracle.com/technetwork/java/javase/downloads/index.html
下载地址: http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-windows-x64.exe
再安装Google Android SDK
http://developer.android.com/sdk/index.html#Other
下载地址: http://dl.google.com/android/android-sdk_r24.4.1-windows.zip
打开 SDK Manager.exe 下载需要调试的API版本和内核(需要翻墙)
建议把arm和intel的都下载下来对比一下,arm核真是奇慢无比(为什么这么慢?)
x86内核可以安装extras里面的加速器优化之后速度确实快很多。
然后在 AVD Manager.exe 新建一个虚拟设备使用指定内核
创建完成后启动即可,然后adb shell各种操作了
例如:
#删除安兔兔跑分app adb uninstall com.antutu.ABenchMark #搜索已经安装的安兔兔相关App adb shell pm list packages|find "tutu"
优点:原生,支持设备丰富,自定义选项多。
缺点:arm核慢,intel核app支持不好。
二、模拟器对比
其他模拟器安装过程就略了,做了简单对比
|--------------|-------------|-----------|------------------------------------------------------| |产品 |Android版本 |虚拟技术 |特点 | |--------------|-------------|-----------|------------------------------------------------------| |Android SDK |ALL |ROM(img) |原生支持,配置复杂,启动太慢 | |--------------|-------------|-----------|------------------------------------------------------| |GenyMotion |ALL |VBOX |定制好的VM,下载即可使用,高级功能收费 | |--------------|-------------|-----------|------------------------------------------------------| |Windroy |4.4.2 |VBOX |速度机快,VBOX定制单一VM, 原生支持太差(WIN内核) | |--------------|-------------|-----------|------------------------------------------------------| |Andyroid |4.2.2 |VMware |安装需翻墙(用到bit.ly), BUG多/不稳定 | |--------------|-------------|-----------|------------------------------------------------------| |BlueStacks |4.4.2 |?? |虚拟技术未知,限制多,广告多 | |--------------|-------------|-----------|------------------------------------------------------|
对比之下GenyMotion是首选,只是稍微有用的功能都收费的, $15/月,还限制人数,不便宜,不差钱的用户看这里。
扩展阅读
[1] 如何优化android arm核avd(虽然讲的方法等于没讲,但是说清楚了为什么这么慢)
[2] GenyMotion的VM 如何安装Google Service包
三、模拟器检测与应对
据相关资料表示市面上一半以上的App都带有模拟器检测功能,一旦App检测到模拟器后屏蔽资源、限制功能、无法执行、崩溃来自我保护很常见
如何检测、如何躲避检测,可以参考资料:
[1] 如何判断Android设备是真机还是模拟器?
[2] 模拟器躲避的检测与应对
最基础的是修改 /system/build.prop 文件,注意:*** 系统启动后运行时修改是无效的 ***
简单说就是自己编译android内核,自己完整编译太耗时,就在现有内核基础上做修改
Android SDK 可以直接用 ROM助手修改官方的img文件。
原理介绍:http://blog.thecobraden.com/2012/06/making-persistent-changes-to-android.html ( 适用Anroid 2.3以下版本)
GenyMotion这种就无法修改,因为他是用的VM,就像手机刷机一样刷入新修改的ROM 才能改掉 /system/build.prop 文件。
四、移动端WEB测试框架(Selendroid + selenium-webdriver)
官方:http://selendroid.io/
Selendroid支持App、WebView的自动化测试,其中WebView是用的Selendroid自己开发的一个简单WebView浏览器App
因为自动化测试需要,需要特定国家IP和修改WebViewUA,这个目前Selendroid没法实现
[+] IP: 用 Proxifier 给模拟器定制一条规则即可; [-] UA [-] Selendroid原生方案: webview app被打包在standalone.jar内,自己扩展webview app,然后自己重新编译打包Selendroid server,不是一般的繁琐; [-] Chrome方案: ChromeDriver.exe可以驱动Android Chrome App,Chrome App UA可以修改,但是ChromeDriver.exe调用时会先修改 /data/local/chrome-command-line,所以此方案也无效; [-] 以后在想其他办法。。。
暂无评论