雷电模拟的控制可以基于自带的工具,也可以直接使用ADB。自带工具也是基于ADB,但是据说更加稳定,本文章使用自带工具ldconsole.exe。
自带工具有三种ld.exe、dnconsole.exe、ldconsole.exe。ld.exe、dnconsole.exe貌似是老版本,使用ldconsole.exe即可。先将dnconsole.exe所在目录加入系统环境变量,方便之后在cmd中调用。
https://www.ldmnq.com/forum/thread-17995-1-1.html https://www.ldmnq.com/forum/thread-30-1-1.html
http://bbs.aardio.com/forum.php?mod=viewthread&tid=22279
一 模拟器操作
1 创建模拟器
ldconsole add --name abc # 注意只能通过名字创建,模拟器的索引是不能指定的
2 删除模拟器
ldconsole remove --name abc
ldconsole remove --index 0
3 启动模拟器
ldconsole launch --name abc
ldconsole launch --index 0
4 关闭模拟器
ldconsole quit --index 0 # 退出指定索引的模拟器
ldconsole quit --name abc # 退出指定标题的模拟器
ldconsole quitall # 退出所有模拟器
5 查询模拟器
ldconsole list2
返回所有模拟器的:索引、标题、顶层窗口句柄、绑定窗口句柄、是否进入android(是否运行)、进程PID、VBox进程PID。对于未运行的模拟器,只有索引、标题有效。
6 复制模拟器
ldconsole copy --name "xyz" --from name/index
xyz为复制后新模拟器的名字;from后为源模拟器的名字或索引
7 重启模拟器
ldconsole reboot --index 0 # 退出指定索引的模拟器
ldconsole reboot --name "abc" # 退出指定标题的模拟器
8 排列多个模拟器
ldconsole sortWnd
9 设置模拟器属性
ldconsole modify --index 0 --resolution 600,360,160 --cpu 1 --memory 1024 --imei auto
属性名称 | 属性和值 |
分辨率(窗口尺寸) | resolution w,h,dpi |
CPU | cpu 1/2/3/4 |
内存 | memory 512/1024/2048/4096/8192 |
厂商 | manufacturer asus |
型号 | model ASUS_Z00DUO |
电话号码 | pnumber 123456789 |
imei号 | imei auto/865166023949731 |
imsi号 | imsi auto/460000000000000 |
sim序列号 | simserial auto/89860000000000000000 |
android设置 | androidid auto/0123456789abcdef |
mac地址 | mac auto/000000000000> |
屏幕自动旋转 | autorotate 1/0 |
窗口锁定 | lockwindow 1/0 |
注意: 模拟器属性要在模拟器启动之前进行设置;值为auto时会随机生成值。
10 设置和获取模拟器属性值
# 设置属性值
ldconsole setprop --name "abc" --key "phone.imei"
ldconsole setprop --index 0 --key "phone.imei"
# 获取属性值
ldconsole getprop --name "abc" --key "phone.imei" --value "auto"
ldconsole getprop --index 0 --key "phone.imei" --value "auto"
11 减少CPU占用
ldconsole downcpu --name "abc" --rate 10 # 取值0~100
ldconsole downcpu --index 0 --rate 10
12 全局设置
设置模拟器的帧率(fps:0~60)、音频开关(0/1)、快速显示开关(0/1)、干净模式(去广告)开关(0/1)
ldconsole globalsetting --fps 10 --audio 0 --fastplay 1 --cleanmode 1
二 手机操作
1 截图
截图基于adb命令,先截图再将图片传到电脑
ldconsole adb --name test1 --command "shell /system/bin/screencap -p /sdcard/1.png"
ldconsole adb --name test1 --command "pull /sdcard/1.png d:/1.png"
注意: 雷电模拟器可以后台截图
2 定位
locate --name "abc" --LLI Lng,Lat
locate --index 0 --LLI Lng,Lat
注意: 需要重启模拟器后才能生效,要想立刻生效要使用action命令
3 扫二维码
ldconsole scan --name "abc" --file filepath
注意: 需要先启动APP再扫码
三 APP操作
先要用Adb命令获取APP的包名,之后才能据此操作APP;ldconsole中没有给出获取包名的命令,要使用Adb命令获取,详细见下面Adb命令;
假设包名为:com.bilibili.priconne
1 安装APP
ldconsole installapp --name "abc" --filename <apk_file_name
ldconsole installapp --name "abc" --packagename "com.bilibili.priconne"
2 卸载APP
ldconsole uninstallapp --name "abc" --packagename "com.bilibili.priconne"
3 运行APP
ldconsoel runapp --name "abc" --packagename "com.bilibili.priconne"
4 退出APP
ldconsole killapp --name "abc" --packagename "com.bilibili.priconne"
四 action命令
可以不重启模拟器,立即实现命令效果
1 执行安卓按键
ldconsole action --name "abc" --key call.keyboard --value back/home/menu/volumeup/volumedown
2 摇一摇
ldconsole action --name "abc" --key call.shake --value null
3 设置地点
ldconsole action --name *** --key call.locate --value 12.3,45.6
4 文字输入
ldconsole action --name "abc" --key call.input --value "text"
5 重力感应
ldconsole action --name "abc" --key call.gravity --value x,y,z
6 联网/断网
# 联网
ldconsole action --name "abc" --key call.network --value connect
# 断网
dnconsole.exe action --name "abc" --key call.network --value offline
五 执行ADB命令
ADB命令:https://www.ldmnq.com/forum/thread-32-1-1.html
启动雷电模拟器时,实际就建立了与Adb的连接,上述操作大都是对Adb命令的封装,要想通过ldconsole直接执行Adb指令:
ldconsole adb --index 1 --command adb命令
以上除了模拟器创建、删除、启动、关闭外,均可以通过Adb命令实现。也就是与手机软硬件相关的操作均可由Adb命令实现,包括上面的模拟器信息(手机信息)。
1 获取所有包名
ldconsole adb --index 1 --command "shell pm list packages"
2 获取包路径
ldconsole adb --index 1 --command "shell pm path com.bilibili.priconne"
3 单击屏幕
2020.11.01 更正如下:
ldconsole adb --index 1 --command "shell input tap X Y"
4 输入文字
ldconsole adb --index 1 --command "shell input text"
5 滑动屏幕
ldconsole adb --index 1 --command "shell input swipe X1 Y1 X2 Y2 [Time]"
6 按键
安卓键值表:ttps://www.cnblogs.com/xiaozhaoboke/p/10029488.html
ldconsole adb --index 1 --command "shell input input keyevent 键值"
补充:
1 模拟器窗口显式坐标
注意: 改变模拟器窗口的大小不会影响坐标