当你想抢王者聊天频道的皮肤碎片红包,或者想和小姐姐(小哥哥)开游戏的时候。可以使用python自动化工具,进行自动化加入开黑房间(一般小姐姐开黑会开语音,然后就会有大佬带,然后就容易上分,哈哈哈)。然后可以喝个奶茶,看个电影~一边等待,加入上分的队伍(所需工具下载链接详见文章尾部)

B站视频传送门:攻城狮晚的个人空间_哔哩哔哩_Bilibili

如何快速和小姐姐五排开黑~_哔哩哔哩_bilibili

目录

1、下载安装ADB工具包和驱动

2、下载安装Andriod SDK

3、UiAutoMatorViewer下载安装

4、测试

5、最终具体Python代码实现

6、参考文献


1、下载安装ADB工具包和驱动

Android Debug Bridge 是一种允许模拟器或已连接的 Android 设备进行通信的命令行工具

下载工具包后,解压到英文路径后,添加系统环境变量

下载驱动之后,点击安装驱动

2、下载安装Andriod SDK

AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载

我是win10系统,所以下载了这个

下载装好之后,会自动运行 SDK Manager。如果没有的话,开始菜单或者安装目录找一下,运行就好。

测试了一下安装还挺快的,我安装的是这几个

3、UiAutoMatorViewer下载安装

1、下载jdk1.8安装(据说其他版本使用UiAutoMatorViewer有问题):

可以先查看jdk(Java Development Kit——Java开发工具包)版本。开始菜单输入cmd,打开命令行窗口,输入java -version查看:

如果没有jdk的话,可以从如下网址下载安装

https://docs.oracle.com/javase/8/docs/technotes/guides/install/install_overview.html

2、下载UiAutoMatorViewer

https://dfenghuoyunji.jb51.net/201904/tools/uiautomatorviewer.rar

下载后,将里面的uiautomatorviewer.jar文件复制到之前安装的sdk的 tools/lib目录下

如果不放心的话,可以将之前的uiautomatorviewer.jar 备份一下

Sdk目录下的tools目录中,uiautomatorviewer.bat可以备份下,然后最后一行Dcom.android.uiautomator.bindir=后接adb实际存放路径。

我放在了D:\program files\Android\abd下

此时即可双击运行uiautomatorviewer.bat,打开uiautomatorviewer

4、测试

1、使用获取截图png和uix文件,保存到当前文件夹:

adb shell screencap -p /sdcard/sc.png

adb pull /sdcard/sc.png

adb shell uiautomator dump /sdcard/sc.uix

adb pull /sdcard/sc.uix

2、使用uiautomatorviewer工具查看能否解析成功

经过测试,手机桌面是可以解析的

但是王者游戏界面无法解析

所以准备使用百度文字识别api,进行操作,大致思路如下:

可以免费领取百度文字识别api的额度,如下网址:

https://cloud.baidu.com/doc/OCR/s/9k3h7xuv6#通用文字识别(高精度含位置版)

如果没有申请的话,默认是收费的,含位置信息的,最便宜的大概0.01元/次调用

里面有相应的调用方式参考代码示例

Token的话,可以参考这个文档,需要先创建应用

https://ai.baidu.com/ai-doc/REFERENCE/Bkru0l60m

作者还试用了iOCR通用版,就是你可以选择需要识别的位置,指定参考点。但是经过测试,无法满足需求。

Adb调试,使用的是华为的鸿蒙手机(百度了一下,鸿蒙系统居然不是安卓了,不过应该是为了通用,adb工具还是可以进行调试的)。

连接手机后,电脑端会跳出华为手机助手,验证过后。Cmd中使用adb截图。如果截图不了的话,华为手机助手会提示再次验证。验证通过后,即可使用adb命令

Cmd中截图,查看没问题后,使用python脚本进行测试。其中点击屏幕命令如下:

adb shell input tap 522 1120(x y)


5、最终具体Python代码实现

import os
import time
import base64
import shutil
import requests
from PIL import Imagedef Myexec(Tstr):# 自定义执行命令函数,方便调试os.system(Tstr)# client_id 为官网获取的AppKey, client_secret 为官网获取的SecretKey
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【你的AppKey】&client_secret=【你的SecretKey】'
response = requests.get(host)
if response:response = response.json()token = response["access_token"]print(response)print(token)
# 可以将token保存为文件,需要的时候再取出来,这里不保存也能用,所以先不保存。
# 默认过期时间30天["expires_in"]# 网络图片文字识别(含位置版)0.03一次,无折扣。能否检测,暂未尝试
# 通用文字识别(高精度版)0.03一次,多了有折扣
# request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic" # 可以检测出♀# 通用文字识别(高精度含位置版)0.04一次,多了有折扣
# request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate" # 可以检测出♀# 通用文字识别(标准版含位置)0.01一次,多了有折扣
request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general" # 可以检测出♀
# 通用文字识别,不含位置的0.005一次,多了有折扣。总结了一下,还是需要位置比较好,不包含位置的,不方便点击。spic = 'sc.png'
dpic = "tmp.png"abd1 = 'adb shell screencap -p /sdcard/'+spic
abd2 = 'adb pull /sdcard/'+spic
# adb shell screencap -p /sdcard/sc.png
# adb pull /sdcard/sc.pngtestCount = 100 # 多少次循环没有找到合适的队伍及停止
testN = 0 # 当前截屏识别次数
clickOk = 0 # 进入队伍的标志while testN<testCount:testN+=1time.sleep(2) # 经过2秒获取一次截屏(5秒以内都行)。因为王者聊天频道刷新时间大概是5秒Myexec(abd1) # 获取截屏Myexec(abd2) # 从手机拉(复制)到本地im = Image.open(spic)#返回一个Image对象:[宽,高]spicW = im.size[0]spicH = im.size[1]DpicW = spicW/2print('第%d次尝试,截屏的宽:%d,高:%d'%(testN,spicW,spicH))# 裁剪一半、保存。增加响应速度。对于王者进入队伍的需求来说,只需要左半部分进行图片识别即可cropped = im.crop((0, 0, DpicW, spicH)) # (left, upper, right, lower)cropped.save(dpic)t = time.time()tmpName = "sc"+str(t)+".png"shutil.copy(dpic,"tmp/"+tmpName) # 保存到临时文件夹# 二进制方式打开图片文件,base64编码后,发送给百度apif = open(dpic, 'rb')img = base64.b64encode(f.read())params = {"image":img}access_token = tokenrequest_url = request_url + "?access_token=" + access_tokenheaders = {'content-type': 'application/x-www-form-urlencoded'}response = requests.post(request_url, data=params, headers=headers) # 获取百度翻译api的返回值if response:response = response.json() # 解析返回值为json格式wres = response["words_result"]thisGhw = 0print (wres)for w in wres:# if "皮肤碎片红包" in w["words"]: # 也可以判断是否有红包,然后点击。哈哈哈,这个就留给大家自己去尝试了tWords = w["words"] if "♀" in tWords: # 男生的这个符号♂,经过测试,百度api识别不出来thisGhw = w["location"]["top"] # 文字距离屏幕截图顶部的距离 70-80,78thisGww = w["location"]["left"] # 文字距离屏幕截图左边的距离 110-120,116print("girl",thisGhw,thisGww)# if ("五人排位" in tWords or "无限乱斗" in tWords) and ("3/5" in tWords or "4/5" in tWords or "35)" in tWords or "45)" in tWords):if "排位" in tWords or "无限乱斗" in tWords: # 测试条件thisPhw = w["location"]["top"] # 70-80,78thisPww = w["location"]["left"] # 110-120,116print("五排或乱斗",thisPhw,thisPww)if thisGhw != 0:exY = int(thisPhw)-int(thisGhw)exX = int(thisPww)-int(thisGww)if exY>70 and exY<90 and exX>110 and exX<128: # 如果满足条件,则点击,进入房间。# 不同手机分辨率下,有可能不一样。这个需要具体测试 (我的是2340*1080px)print("点击位置,x:%s,y:%s"%(thisPww,thisPhw))# adb shell input tap 540 1104Myexec("adb shell input tap "+str(thisPww)+" "+str(thisPhw))breakif "全队" in tWords or "召集" in tWords: # 判断是否已经进入房间clickOk = 1 print("进入房间成功")if clickOk == 1:# 如果已经进入房间,退出循环break

经过测试,一般等待几分钟,就会进入想要的房间啦~再也不用一直盯着屏幕啦~其实还有很多功能,比如自动抢皮肤碎片啦、做任务啦,这些就需要大家自己去实现啦~

所用工具下载地址:链接:https://pan.baidu.com/s/1ckE8mj_eWhVatAFoV8E3Mg 
提取码:lkkz


6、参考文献

  1. 《ADB 操作命令详解及用法大全》ADB 操作命令详解及用法大全 - 掘金
  2. 《Android自动化测试应用<一>《uiautomatorviewer工具的安装与使用》》https://www.cnblogs.com/corsacsherry/p/10609339.html
  3. 《Android SDK的下载与安装》https://www.cnblogs.com/nebie/p/9145627.html
  4. 《OSError: cannot write mode RGBA as JPEG》https://blog.csdn.net/weixin_39777626/article/details/82774270
  5. 《Python读取图片尺寸、图片格式》https://www.cnblogs.com/d0main/p/7613296.html
  6. 《Python实现图片裁剪的两种方式(Pillow和OpenCV)》https://www.jb51.net/article/173183.htm
  7. 《Uiautomatorviewer报错Unexpected error while obtaining UI hierarchy java.lang.reflect.InvocationTargetE》https://blog.csdn.net/qq_41714308/article/details/113886433
  8. 《UI Automator Viewer工具的使用》https://www.cnblogs.com/lhx0827/p/9577575.html
  9. 《用Python实现自动化操作Android手机》https://www.cnblogs.com/xakzp/articles/9662770.html
  10. 《python 控制手机滑屏_如何使用python控制手机(以微信游戏跳一跳为例)》https://blog.csdn.net/weixin_26757939/article/details/113642335
  11. 《android adb 模拟点击、滑动、输入、按键》https://blog.csdn.net/liukang325/article/details/79268173

Python控制手机,五排上分相关推荐

  1. 使用Python控制手机(二)关于淘宝的那些事

    1. 序言 每年淘宝双十一的时候,总是要刷各种各样的浏览页面,收集能量或者喵币或者什么. 那既然如此,我就总想着,能否通过Python自动调用的方式来刷网页. 2. 前置工作 本文是基于使用Pytho ...

  2. 用python控制手机电脑拍照并自动发送邮箱

    文章目录 本文思路 视频讲解 代码部分 兄弟们,这个是正经的教程,不要拿来乱用,可以自己用自己的电脑或者手机试,但是别搞别人,懂的都懂! 本文思路 通过opencv调用摄像头拍照保存图像本地 用ema ...

  3. python控制手机

    文章目录 1.首先安装依赖环境,uiautomator2和其他依赖包 2.需要安装Adb环境 3.需要设备安装ATX 编写Python代码进行控制手机 4.ui的一些操作命令如下: 1.链接设备 2. ...

  4. 使用Python控制手机(一)

    1. 配置Python环境变量 Python环境变量安装较为简单,比较常用的方式是直接百度Anaconda并且下载安装,安装过程中可直接选择自动配置环境变量,在此不再赘述. 2. 安装Python编辑 ...

  5. uiautomator2 adb 安装与运行 python控制手机软件

    研究了三天才搞定的python自动化控制手机软件,将学到的步骤和遇到的各种坑在这里记录下来,方便我之后查找 写代码前的准备工作 一.下载adb软件.添加环境变量.调试 1.0 下载adb https: ...

  6. python 控制 手机来进行操作皇室战争要卡

    我玩皇室战争,几乎每天都会上线要卡:然后我想了下有没有一个脚本,能够实现自动要卡, 所以我经过3天的研究,最后是做出来了 我现在在这里总结一下. 首先使用pycharm创建一个项目 然后安装几个第三方 ...

  7. Python控制手机下欢乐五子棋,半天时间1段到9段,90%+的胜率,就无敌

    国庆节闲来无事,突然想到儿时玩的五子棋于是打开手机-小程序-欢乐五子棋.下了2把感觉太费脑子了.想到之前有个五子棋引擎,叫羿心.然后开始找官网,找到了尼玛居然官网挂了.于是就上GitHub上面去找,居 ...

  8. python控制手机自动刷新闻_Python控制android手机实现微信自动跳一跳

    学习一个新东西一定要有趣,如果只是简单学习语法太枯燥了.弄了个跳一跳的程序,注释写的很清楚#!/usr/bin/env python # encoding: utf-8 # @software: Py ...

  9. python控制手机自动刷新闻_Python脚本利用adb进行手机控制的方法

    一. adb 相关命令: 1. 关闭adb服务:adb kill-server 2. 启动adb服务 adb start-server 3. 查询当前运行的所有设备 adb devices 4. 可能 ...

最新文章

  1. 【机器学习知识体系】- 机器学习问题的一般流程
  2. 从零开始学习jQuery (十) jQueryUI常用功能实战
  3. java填空题 在非静态成员方法中_Java学习(四): 类的使用
  4. 双指针解决力扣两/三数之和问题
  5. 文件下载至storage_如何防止Storage Sense在Windows 10上删除下载的文件
  6. 子模板继承父模板示例_模板设计模式示例
  7. 1-6docker数据共享与持久化
  8. Python二级笔记(5)
  9. JAVA—字符串怎么转换成整数
  10. Illustrator中文版教程,如何在AI中以不同的方式组合形状?
  11. Linux修改命令行样式
  12. 我的NAS安装之旅(1)——硬件和软件选型篇
  13. 【笔记】《离散数学》第十章 递推方程与生成函数
  14. 汇智创科机器人,【汇智创科机器人】这个周六,和孩子一起“动手不动口”,比比看谁最棒!...
  15. caps scrlk numlk 闪烁
  16. 树莓派如何接硬盘_树莓派3 挂载外接硬盘
  17. 记录:使用DJANGO从0开始搭建微信公众平台(0)
  18. 大数据时代背景下的商标注册风险及应对方法
  19. 一年中最后一个月的最后一天说说_2020只剩最后一个月的励志说说致自己
  20. 读研的那些事儿(三)

热门文章

  1. 如何按文件类型分类保存到各个目录文件夹
  2. 隔行如隔山,隔行不隔理
  3. 构建高性能的微博系统——再谈新浪微博架构
  4. Python比较时间大小
  5. php实现站群软件权限管理功能示例
  6. 菜鸟学编程必须养成的十大好习惯
  7. 搭档之家:“高价”小罐茶现主打“亲民路线”,是“妥协”还是“营销”?
  8. Broadcom SDK编译
  9. Debug时 Eclipse左侧边栏的白色箭头是什么意思?
  10. 大数据面试题6 ---前面有用 后面没用 前面介绍真实情况算法