• HOME
  • DOCS
  • WTF
  • TECH
  • LIFE
  • PAGES
    • ARCHIVE
    • TAGS
    • ABOUT
    • FRIENDS
    • RSS
  • TOOLS
    • GEO
    • RANDOM()
    • GOO.GL
    • CSS HEART
Aj's Blog

记录时间溜走的瞬间和折腾过的那些事

几种Android模拟器对比
2016-01-04 @ TECH androidandyroidbluestackschromedrivergenymotionSDKselendroidwindroy

一、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,所以此方案也无效;
    [-] 以后在想其他办法。。。
下一篇:   Hook入门之Detour库
上一篇:   virtualbox debian8 无法映射目录的问题
暂无评论

Cancel reply