目录
前言:
一.目录结构
二.注册表研究
1.HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Tencent\MobileGamePC
2.HKEY_CURRENT_USER\Software\Tencent\MobileGamePC
三.模拟器快捷启动
1.快捷启动命令:
2.启动命令如何放入桌面:
3.adb端口,目前测试均可以使用:
前言:
此文主要介绍使用第三方模拟器(这里使用腾讯手游助手)作为开发工具,此模拟器分为两个引擎,一个与其他模拟器一样基于virtualbox的标准引擎,不过优化不太好,一个是他们主推的aow引擎,此引擎。关于aow没有太多的技术资料,目前只能了解到此引擎可以在没有vt的环境下运行。后续会不断更新。主要包括:目录结构分析,注册表分析,快捷启动指令、问题解决。
一.目录结构
第一个应该是aow引擎的数据文件夹,此模拟器把安卓路径虚拟化,文件夹中可以看到内部系统镜像直接以bin格式文件存储,镜像以外的数据直接按照Linux的iNode分配文件
第二个是腾讯手游助手的市场.估计是为了配置助手和拉取模拟器
第三个cloudgame应该是云游戏的文件夹,这个和模拟器没啥关系
第四个UI,是模拟器的UI,以及键位等其他配置的工具
第五个vdi_100_x64:不用说肯定是基于vbox的标准引擎的数据文件夹,打开文件可以看到文件夹内包含system.sdcard,data的vdi文件
每个文件夹中都有包含的tinst.exe推测是腾讯手游助手的更新文件
二.注册表研究
目前找到此软件的注册表路径为:
1.HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Tencent\MobileGamePC
可以看到文件夹目录如下:
可以看到右侧有显示的值:supplyid这里存放的是安装的渠道id值,估摸着是为了在判断是否下载到beta版本和获取beta版本渠道使用的,version肯定是在说版本号。
然后看左侧目录:
第一个Aegine:里面存放着CPU和GPU测试的分数,推测是在启动运行,目的是他们开发排查是否硬件太低导致的问题
第三个Appmarket:存放着上次crash的时间、安装时间、以及autostart属性名,把值改为0可以让腾讯手助不再开机自启。
第五个UI:存放着安装时间,上次运行和运行成功的时间,以及设置的渲染模式。不多做介绍
第二个、第四个和最后一个就不说了里面存放着版本号,等一些不是很重要的信息
2.HKEY_CURRENT_USER\Software\Tencent\MobileGamePC
此路径也是一些配置和设置,至于为什么分两个我也不清楚,讲一些重要的部分
GraphicsCardEnabled:是是否启动独显,为1时启动
GpsLocation:肯定是存放gps定位信息,猜测会动态更新
Region:语言
syzs_emulator_hwnd:模拟器的
UserLanguage:用户设置的语言
sf:共享目录,大概是存放临时文件和拉取服务器配置的位置以及下载的apk,
TempPath:临时文件目录,其实就是共享目录的上级目录
三.模拟器快捷启动
通过抓命令行的方式,我找到了这个模拟器中,强制使用某一渲染模式和模拟他们市场快速启动傲引擎/标准引擎,以及启动引擎中引擎的方式
1.快捷启动命令:腾讯手游助手内置两个安卓x86版本,一个是4.4,一个是7.1,在不加任何参数启动 安装目录\ui\AndroidEmulatorEx.exe会自动启动4.4引擎。启动参数要在安装引擎后才可用,默认不会安装引擎,可以先去市场下载这些引擎的游戏或者应用(例如qq),把引擎安装上后可使用。
其他引擎启动可以参考这里: 强制以某一引擎启动: -engine aow 解释:傲引擎 -engine vdi 解释:标准引擎 -vm 0 解释:4.4引擎 -vm 100 解释:7.1引擎 例如启动7.1的傲引擎版本命令:安装目录\ui\AndroidEmulatorEx.exe -engine aow 强制使用某一渲染模式: 前面在windows使用virtualbox搭建安卓x86环境说过大部分模拟器使用google的angle库将安卓内的opengles请求转换成opengl desktop和directx来运行,腾讯手游助手也不例外,但是,部分应用会被市场配置到指定渲染模式运行,若需要强制以一个渲染模式运行可以在启动时加入以下参数: -force-directx -glesv3 1 解释:强制以opengl启动 -force-opengl -glesv3 1 解释:强制以directx启动 例如强制以opengl启动标准引擎7.1命令:安装目录\ui\AndroidEmulatorEx.exe -engine aow 模拟启动内部应用(注意:启动的应用一定要是安装好的): -cmd StartApk -startpkg 包名 以使用傲引擎7.1强制启动和平精英为例 安装目录\ui\AndroidEmulator.exe -cmd StartApk -startpkg com.tencent.tmgp.pubgmhd -engine aow -vm 100
2.启动命令如何放入桌面:
方案1:
找到UI文件夹(右击桌面上的腾讯手游助手),回到上一级TxGameAssistant目录,里面有一个UI目录,进入后找到AndroidEmulatorEx.exe,选中右击发送到桌面快捷方式。在桌面上可以看到这个文件的快捷方式,右击-属性,在目标后面加入启动参数,例如下图
然后应用启用
方案2:编写bat,具体的逻辑和代码实现如下,以下是启动傲引擎7.1和平精英的案例,可以参考以上参数说明修改为其他游戏
rem 先查询注册表HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\TENCENT\MobileGamePC\UI的InstallPath,获取UI的安装位置,然后cd到那个目录。启动就好了 @echo off cd /d %~dp0 for /f "tokens=2* delims=Z" %%a in ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\TENCENT\MobileGamePC\UI" /v "InstallPath" ') do set UI=%%a cd /d %UI% start AndroidEmulator.exe -engine aow -vm 100 -force-opengl -glesv3 1 -cmd StartApk -startpkg com.tencent.tmgp.pubgmhd exit
3.adb端口,目前测试均可以使用:
傲引擎:5555 标准引擎:5655 adb connect 127.0.0.1:5555 adb connect 127.0.0.1:5655
Developed by 福州机电工程职业技术学校 wh
邮箱联系方式:xiaohui032901@foxmail.com
qq联系方式:2151335401、3135144152