Android各种模拟器使用笔记

【√】天天模拟器

优点:

  1. 纯绿色化
  2. 模拟GPS定位时,反应足够快(调试时基本能够比网络定位优先拿到GPS模拟的位置信息)
  3. 2.1.3版本足够日常使用。

缺点:

  1. 广告挺多的(已手动屏蔽)
  2. 可设置的选项没有 夜神模拟器 多(但是足够使用如能设置分辨率和DPI就行)
  3. 升级到最新的 TianTianSetup-v2.2.1-full 安装在C盘没问题,其他盘有问题,VBox模拟器COM组件注册异常。
  4. ROOT 功能不正常.
  5. 升级到最新的 TianTianSetup-v3.0.2 (Android系统升级到6.0了)版本后相机无法正常启动宿主电脑的摄像头,绿色化也不完整,会向系统盘写入配置文件.

个人经验

ADB 版本过低的解决办法

TTMNQTools 目录下的

	adb.exe
AdbWinApi.dll
AdbWinUsbApi.dll

3个关键文件替换为 Android SDK 里的最新版本文件即可.

去启动时的广告方法

  1. 设置以下目录权限 TTMNQUserDataTianTianad 为禁止读取即可.(亲测成功)
  2. 创建同名 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原因分析:
  1. 经过查看LogCat,发现每次全新安装一个APP时,需要请求一个网址 webapi.kaopu001.com ,然后超时了。导致每次安装都要等待N久的时间。
情况1解决方案:
  1. 通过某些模拟器可用的防火墙APP,禁用掉所有系统APP的网络访问权限即可。

    亲测**可用(但效果不好,已放弃)**的APP:Adguard(VPN模式无效,WiFi代理模式可用) 亲测无用的APP:NoRoot Firewall,DroidWall

  2. 通过宿主电脑限制天天模拟器进程的网络访问权限:理论上也行.(未亲测)
  3. 理论上改宿主或者模拟器本身的Host文件也应该可行.(未亲测)
情况2原因分析:
  1. 分析LogCat总结规律发现每次10秒过后会出现信息:PackageManager: Verification timed out
  2. 网搜发现错误地址在 PackageManager.java 文件,反编译源码(system/framework/services.jar)
  3. 发现控制校验的代码主要有两个,通过以下脚本禁用即可.
情况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:

UserDataTianTian目录拷贝一份到 D:TTMNQUserDataTianTian 目录即可.

解决方案2:

创建一个 D:TTMNQ 指向到 任意目录下的TTMNQ 的文件夹目录符号链接(或硬链接)
如通过MKLLINK /D D:TTMNQ D:MNQTTMNQ 或 MKLLINK /H D:TTMNQ D:MNQTTMNQ

解决方案3:

直接修改UserDataTianTian tgps.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 应用即可实现调用拍照软件时,出现新的相机选项,然后可以选择一张照片来模拟拍照成功.

3.X以上版本绿色化不完全,提示"配置文件损坏,需重新安装解决"的问题?

通过"Windows Sysinternals.Procmon.exe"抓去 TTMNQ 启动信息,发现它会读取 HKEY_LOCAL_MACHINESOFTWAREWow6432NodeTianTian路径下的注册表信息. 经过尝试,只要增加注册表两条关键配置即可解决此问题

解决方案:
REM 3.X 以上版本必须在注册表里找到 InstallPath 才能正常启动,否则提示"配置文件损坏,需重新安装解决"
SET InstallPath="E: tmnq"
reg add "HKEY_LOCAL_MACHINESOFTWAREWow6432NodeTianTianSetup" /v "Version" /t REG_SZ /d "3.0.3" /f
reg add "HKEY_LOCAL_MACHINESOFTWAREWow6432NodeTianTianSetup" /v "InstallPath" /t REG_SZ /d %InstallPath% /f

【×】夜神模拟器

优点:

  1. 可设置的选项要比 天天模拟器 要多很多。
  2. 有多款皮肤
  3. 自带ROOT权限
  4. 支持调用宿主电脑摄像头

缺点:

  1. 部分绿色化(会写入部分设置到系统盘%LOCALAPPDATA%Nox
  2. 模拟GPS定位时,反应太慢(感觉就像模拟真机一样需要冷启动GPS很久才正常一样)。导致程序总是优先拿到了网络定位。不方便调试。
  3. 系统版本4.4.2
  4. 系统版本5.1.1 摄像头调用不正常

个人经验

ADB无法连接到模拟器

启动 Noxindebug.bat 即可.

ADB 版本过低的解决办法

Noxin 目录下的

	nox_adb.exe
AdbWinApi.dll
AdbWinUsbApi.dll

3个关键文件替换为 Android SDK 里的最新版本文件即可.
adb.exe文件需要重命名 nox_adb.exe

【×】雷电模拟器

优点:

  1. 可设置的选项要比 天天模拟器 多
  2. 系统是5.1.1的

缺点:

  1. 摄像头无法调用宿主机的摄像头,虽然无法调用宿主摄像头,但是会弹出截取二维码窗口对宿主桌面截图出来显示,不闪退崩溃.但是有的APP还是检测不到相机.

【×】网易MuMu模拟器

缺点:

  1. 摄像头无法调用宿主机的摄像头,或者模拟的效果也没有.
  2. 系统版本是4.4.4

【×】逍遥游模拟器

优点:

  1. 可设置的选项要比 天天模拟器 多
  2. 系统是5.1.1的
  3. 虽然没有控制相机开启的开关,但是某些相机应用还是能调用宿主电脑摄像头的.

缺点:

  1. 只能使用兼容模式导致性能过低放弃
  2. 首次安装在51%居然卡住了!囧
  3. 调用某些相机的APP直接闪退

【×】Genymotion

优点:

  1. 系统ROM版本很新很丰富

缺点:

  • 需要注册才能使用。
  • 绿色化很麻烦。

【×】BlueStacks

优点:

  1. 功能多?

缺点:

  • 系统API19 Android 4.4.2

个人经验

临时性使用 Genymotion 的办法

  1. 前提:备份了对应的系统文件;如 genymotion_vbox86p_7.1_170929_114700.ova

登录帐号 - 然后下载需要的系统镜像 - 打开C:/Users/XX/AppData/Local/Genymobile/Genymotion/ova - 备份起来即可.

  1. 安装 genymotion-2.11.0-vbox.exe

离线安装 ,速度更快: 可离线直接使用免费的PersonUse授权,不联网,不用登录.

  1. 双击 genymotion_vbox86p_7.1_170929_114700.ova 导入Oracle VM VirtualBox

  2. 再重新打开 Genymotion 软件 即可在 “Your virtual devices” 列表里看见该虚拟机了

  3. 打开虚拟机  先设置好 需要的 分辨率 等配置.

  4. 打开虚拟机  安装 Genymotion-ARM-Translation_v1.1.zip 以便正常安装非X86架构的APP

优点:

  • 能正常安装;
  • 能正常使用大部分功能;

缺点:

  • 作者不再维护了(2017年在xda-developers.com里发表了声明)
  • 涉及Native部分的代码功能还是(大概率)会出错.
参考资料:
  1. [GUIDE] Genymotion | Installing ARM Translat… | Android Development and Hacking
  2. android - INSTALL_FAILED_NO_MATCHING_ABIS when install apk - Stack Overflow

【×】Android SDK 自带模拟器

优点:

  1. Android系统ROM版本最新最齐全
  2. 纯绿色化

缺点:

  1. 使用ARM系统镜像,性能不高
  2. 无法正常安装大部分 不支持X86架构的 APP
  3. 最新版本的系统不太稳定,可能有的功能无法正常使用.

个人经验

解决X86架构模拟器无法安装 “不支持X86架构的 APP” 的办法

在项目 build.gradle 里 的 android{} 节点里增加以下配置代码

android {
splits {
abi {
enable true
reset()
include 'x86', 'x86_64'
universalApk true
}
}
}
作者:Asion Tang
凡是没有注明[转载]的文章,本Blog发表的文章版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/AsionTang/p/7249522.html