python控制雷电模拟器

摘要:

       由于雷电模拟器的命令行工具非常适合第三方代码控制,所以越来越多的人开始使用雷电模拟器进行脚本、逆向等软件的开发。但是也有很多人不清楚用程序控制雷电模拟器的原理和方法。所以我以比较容易入门的Python代码为例,从原理到方法讲解一下雷电模拟器的控制过程。

雷电模拟器的控制原理

       安装好雷电模拟器之后,大家可以在安装目录下面找到ldconsole.exe和ld.exe两个命令行程序。此外,启动雷电模拟器之后,可以在共享文件夹→高级选项里面找到一个Windows路径。这个路径和模拟系统里面/sdcard/Pictures路径,两者是想通的。即在模拟器中复制文件到/sdcard/Pictures路径下,对应的Windows路径下面也会多出一个这样的路径。这个对于识图脚本来说,是非常的友好——因为在模拟器中截图无需经过dump步骤,就可以直接在控制主机上读到图并进行处理。此外两边甚至能够动态、高效的传递共享文件,这个功能就完爆其他模拟器。

       下面说说ld和ldconsole两个命令。Ld命令用来执行adb命令,但是和普通adb不同的是,你无需知道模拟器设备的序列号,而是直接可以通过序号来发命令。而且目标不存在能够很快反馈。这个可以加快脚本的效率,并且提高脚本的稳定性——因为不存在也不会崩溃。此外ld命令的连接非常稳定,不会受到物理USB线的影响,不会时断时续不稳定。这个对一些要长期跑的脚本来说,简直就是致命吸引。

       ldconsole也是一个很不错的工具,可以控制模拟器参数的设定,包括imei,序列号,手机号分辨率等等参数,还可以检测和控制模拟器的启动和关闭。甚至能够模拟输入,按键,滑动等操作。而且这种模拟操作是模拟器本身的开发接口,比adb要更稳定和灵敏,非常适合开发人员使用。

       综上,雷电模拟器的控制原理,其实是通过控制命令行接口来控制模拟器的行为。

雷电模拟器控制的示例

class Dnconsole:
    # 请根据自己电脑配置
    console = 'D:\\Changzhi\\dnplayer2\\ldconsole.exe '
    ld = 'D:\\Changzhi\\dnplayer2\\ld.exe '
    share_path = 'C:/Users/zerglurker/Documents/雷电模拟器/Pictures'

    @staticmethod
    def get_list():
        cmd = os.popen(Dnconsole.console + 'list2')
        text = cmd.read()
        cmd.close()
        info = text.split('\n')
        result = list()
        for line in info:
            if len(line) > 1:
                dnplayer = line.split(',')
                result.append(DnPlayer(dnplayer))
        return result

    @staticmethod
    def list_running() -> list:
        result = list()
        all = Dnconsole.get_list()
        for dn in all:
            if dn.is_running() is True:
                result.append(dn)
        return result

    @staticmethod
    def is_running(index: int) -> bool:
        all = Dnconsole.get_list()
        if index >= len(all):
            raise IndexError('%d is not exist&
  • 23
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 50
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 50
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值