Android各种模拟器使用笔记
- 【√】天天模拟器
- 【×】夜神模拟器
- 【×】雷电模拟器
- 【×】网易MuMu模拟器
- 【×】逍遥游模拟器
- 【×】Genymotion
- 【×】BlueStacks
- 【×】Android SDK 自带模拟器
【√】天天模拟器
优点:
- 纯绿色化
- 模拟GPS定位时,反应足够快(调试时基本能够比网络定位优先拿到GPS模拟的位置信息)
- 2.1.3版本足够日常使用。
缺点:
- 广告挺多的(已手动屏蔽)
- 可设置的选项没有 夜神模拟器 多(但是足够使用如能设置分辨率和DPI就行)
- 升级到最新的 TianTianSetup-v2.2.1-full 安装在C盘没问题,其他盘有问题,VBox模拟器COM组件注册异常。
- ROOT 功能不正常.
- 升级到最新的 TianTianSetup-v3.0.2 (Android系统升级到6.0了)版本后相机无法正常启动宿主电脑的摄像头,绿色化也不完整,会向系统盘写入配置文件.
个人经验
ADB 版本过低的解决办法
将\TTMNQ\Tools
目录下的
adb.exe
AdbWinApi.dll
AdbWinUsbApi.dll
3个关键文件替换为 Android SDK 里的最新版本文件即可.
去启动时的广告方法
- 设置以下目录权限
TTMNQ\UserData\TianTian\ad
为禁止读取即可.(亲测成功) - 创建同名 ad 文件,以便程序无法自动创建 ad 目录?(未亲测)
去除多余进程方法
将 目录 TTMNQ去多余进程
里的程序替换掉文件即可.
│ RYWebStatistics.bat
│ RYWebStatistics.exe
│ TianTianAdvert.bat
│ TianTianAdvert.exe
│ TianTianPushAd.bat
│ TianTianPushAd.exe
│ ToolUpdater不能替换会崩溃.exe
│ WebStatistics.bat
│ WebStatistics.exe
│
├─download
│ MiniThunderPlatform.bat
│ MiniThunderPlatform.exe
│
├─Tools
│ kpzsJoystickTool.bat
│ kpzsJoystickTool.exe
│ kpzsPay.bat
│ kpzsPay.exe
│
└─UserData
└─TianTian
WebStatistics.bat
WebStatistics.exe
ADB无法连接到模拟器
原因分析:
天天模拟器使用了兼容性更好的方式,直接使用类似WiFi Adb模式才能链接.
解决方案:
adb connect 127.0.0.1:6555
安装APP(APK)时非常非常慢TTMNQ每次调试、运行、安装无论多大的APP的时候总是要等待至少10秒以上才成功?
情况1原因分析:
- 经过查看LogCat,发现每次全新安装一个APP时,需要请求一个网址 webapi.kaopu001.com ,然后超时了。导致每次安装都要等待N久的时间。
情况1解决方案:
- 通过某些模拟器可用的防火墙APP,禁用掉所有系统APP的网络访问权限即可。
亲测**可用(但效果不好,已放弃)**的APP:Adguard(VPN模式无效,WiFi代理模式可用) 亲测无用的APP:NoRoot Firewall,DroidWall
- 通过宿主电脑限制天天模拟器进程的网络访问权限:理论上也行.(未亲测)
- 理论上改宿主或者模拟器本身的Host文件也应该可行.(未亲测)
情况2原因分析:
- 分析LogCat总结规律发现每次10秒过后会出现信息:PackageManager: Verification timed out
- 网搜发现错误地址在 PackageManager.java 文件,反编译源码(system/framework/services.jar)
- 发现控制校验的代码主要有两个,通过以下脚本禁用即可.
情况2解决方案:
相关资料:
1.遇到INSTALL_FAILED_VERIFICATION_FAILURE怎么办 - CSDN博客
将系统设置 verifier_verify_adb_installs
和 package_verifier_enable
设置为0 禁用掉即可.
将下方代码另存为adb.加速模拟器安装APK的速度(禁用APP安装校验功能).bat
文件执行一下即可.
@ECHO OFF
ECHO verifier_verify_adb_installs 修改前
adb shell settings get global verifier_verify_adb_installs
ECHO verifier_verify_adb_installs 修改为
ECHO 0
adb shell settings put global verifier_verify_adb_installs 0
ECHO verifier_verify_adb_installs 修改后
adb shell settings get global verifier_verify_adb_installs
ECHO.
ECHO package_verifier_enable 修改前
adb shell settings get global package_verifier_enable
ECHO package_verifier_enable 修改为
ECHO 0
adb shell settings put global package_verifier_enable 0
ECHO package_verifier_enable 修改后
adb shell settings get global package_verifier_enable
ECHO.
PAUSE
移动TTMNQ目录到非磁盘根目录时,无法设置GPS模拟位置的问题?
原因分析:
可能是程序读取配置文件时,写死的路径?或者在初次安装时,一不小心记住了之前的配置文件夹路径导致的.
解决方案1:
在UserData\TianTian
目录拷贝一份到 D:\TTMNQ\UserData\TianTian
目录即可.
解决方案2:
创建一个 D:\TTMNQ
指向到 任意目录下的TTMNQ
的文件夹目录符号链接(或硬链接)
如通过MKLLINK /D D:\TTMNQ D:\MNQ\TTMNQ
或 MKLLINK /H D:\TTMNQ D:\MNQ\TTMNQ
解决方案3:
直接修改UserData\TianTian\ttgps.xml
文件里的经纬度即可实时改变当前GPS位置.
解决方案4:
直接修改mTianTian.dat
文件里的HTML代码.这个文件就是供TianTianGPS.exe
程序调用的地图选择网页.可能是这个HTML出BUG了.
TTMNQ能正常启动显示桌面,但是无法点击运行任何APP,仿佛桌面卡死一般?
原因分析:
删除了文件ToolUpdater.exe导致的.
解决方案:
还原该文件即可.
如何转换为系统应用/system/app
?
对于某些特殊的APP必须存在指定系统目录/system/app
下才能正常工作,而通过常规方式将其转换为系统应用始终失败(如用钛备份转换为系统应用会一直卡死在进度条那里).
解决方案:
使用/system/app mover
APP来移动指定应用,并使用其内置的软重启|热重启一次模拟器系统,即可生效(冷重启一次模拟器会再次失效,只能再操作一次然后热重启才可以)
系统相机不工作时该怎么模拟拍照?
解决方案:
使用各种 Fake Camera 应用即可实现调用拍照软件时,出现新的相机选项,然后可以选择一张照片来模拟拍照成功.
- 下载地址1: Fake Camera - Google Play 上的 Android 应用
- 下载地址2: Search for Fake Camera.apk For Android | Android APK
- 下载地址3: Gallery Camera - Google Play 上的应用
3.X以上版本绿色化不完全,提示"配置文件损坏,需重新安装解决"的问题?
通过"Windows Sysinternals.Procmon.exe"抓去 TTMNQ 启动信息,发现它会读取 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\TianTian
路径下的注册表信息. 经过尝试,只要增加注册表两条关键配置即可解决此问题
解决方案:
REM 3.X 以上版本必须在注册表里找到 InstallPath 才能正常启动,否则提示"配置文件损坏,需重新安装解决"
SET InstallPath="E:\ttmnq"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\TianTian\Setup" /v "Version" /t REG_SZ /d "3.0.3" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\TianTian\Setup" /v "InstallPath" /t REG_SZ /d %InstallPath% /f
【×】夜神模拟器
优点:
- 可设置的选项要比 天天模拟器 要多很多。
- 有多款皮肤
- 自带ROOT权限
- 支持调用宿主电脑摄像头
缺点:
- 部分绿色化(会写入部分设置到系统盘
%LOCALAPPDATA%\Nox
) - 模拟GPS定位时,反应太慢(感觉就像模拟真机一样需要冷启动GPS很久才正常一样)。导致程序总是优先拿到了网络定位。不方便调试。
- 系统版本4.4.2
- 系统版本5.1.1 摄像头调用不正常
个人经验
ADB无法连接到模拟器
启动 Nox\bin\debug.bat
即可.
ADB 版本过低的解决办法
将\Nox\bin
目录下的
nox_adb.exe
AdbWinApi.dll
AdbWinUsbApi.dll
3个关键文件替换为 Android SDK 里的最新版本文件即可.adb.exe
文件需要重命名为 nox_adb.exe
【×】雷电模拟器
优点:
- 可设置的选项要比 天天模拟器 多
- 系统是5.1.1的
缺点:
- 摄像头无法调用宿主机的摄像头,虽然无法调用宿主摄像头,但是会弹出截取二维码窗口对宿主桌面截图出来显示,不闪退崩溃.但是有的APP还是检测不到相机.
【×】网易MuMu模拟器
缺点:
- 摄像头无法调用宿主机的摄像头,或者模拟的效果也没有.
- 系统版本是4.4.4
【×】逍遥游模拟器
优点:
- 可设置的选项要比 天天模拟器 多
- 系统是5.1.1的
- 虽然没有控制相机开启的开关,但是某些相机应用还是能调用宿主电脑摄像头的.
缺点:
- 只能使用兼容模式导致性能过低放弃
- 首次安装在51%居然卡住了!囧
- 调用某些相机的APP直接闪退
【×】Genymotion
优点:
- 系统ROM版本很新很丰富
缺点:
- 需要注册才能使用。
- 绿色化很麻烦。
【×】BlueStacks
优点:
- 功能多?
缺点:
- 系统API19 Android 4.4.2
个人经验
临时性使用 Genymotion 的办法
- 前提:备份了对应的系统文件;如
genymotion_vbox86p_7.1_170929_114700.ova
登录帐号 - 然后下载需要的系统镜像 - 打开
C:/Users/XX/AppData/Local/Genymobile/Genymotion/ova
- 备份起来即可.
- 安装
genymotion-2.11.0-vbox.exe
离线安装 ,速度更快: 可离线直接使用免费的PersonUse授权,不联网,不用登录.
-
双击
genymotion_vbox86p_7.1_170929_114700.ova
导入Oracle VM VirtualBox -
再重新打开 Genymotion 软件 即可在 “Your virtual devices” 列表里看见该虚拟机了
-
打开虚拟机 前 先设置好 需要的 分辨率 等配置.
-
打开虚拟机 后 安装
Genymotion-ARM-Translation_v1.1.zip
以便正常安装非X86架构的APP
优点:
- 能正常安装;
- 能正常使用大部分功能;
缺点:
- 作者不再维护了(2017年在xda-developers.com里发表了声明)
- 涉及Native部分的代码功能还是(大概率)会出错.
参考资料:
- [GUIDE] Genymotion | Installing ARM Translat… | Android Development and Hacking
- android - INSTALL_FAILED_NO_MATCHING_ABIS when install apk - Stack Overflow
【×】Android SDK 自带模拟器
优点:
- Android系统ROM版本最新最齐全
- 纯绿色化
缺点:
- 使用ARM系统镜像,性能不高
- 无法正常安装大部分 不支持X86架构的 APP
- 最新版本的系统不太稳定,可能有的功能无法正常使用.
个人经验
解决X86架构模拟器无法安装 “不支持X86架构的 APP” 的办法
在项目 build.gradle
里 的 android{}
节点里增加以下配置代码
android {
splits {
abi {
enable true
reset()
include 'x86', 'x86_64'
universalApk true
}
}
}