Qpython AutoPy.py作者记录
使用方法:
1.安装我的AutoPy.apk
1.1 授权无障碍辅助权限(重要)
1.2 授权文档读写权限(重要)
2.点击安装Dian模块
3.打开开发者选项的显示指针位置
4.测试点击,测试拖动,
1150532-20200103140724768-1082716535.png
如图则可以正常使用
qpython里面的使用方法:
在qpython中使用,第一步要导入Dian文档,该文档目前共有两个方法,一个是实现点击,一个是实现拖动的,在这两个功能的配合下可以完成大部分自动化操作
1.点击:(方法名:tap(x,y))
#第一个参数x为,点击屏幕上的x坐标
#第二个参数y为,点击屏幕上的y坐标
#使用方法为:
improt Dian#导入Dian文档
Dian.top(100,100)#点击x:100,y:100的屏幕坐标
#可以实现点击
7109acf91b354e0cd98fc9cf6866f19a1f5.png
如图所示返回执行结果
2.滑动、拖动(方法名:swipe(x1,y1,x2,y2))
#第一个参数x1为,起点屏幕上的x1坐标
#第二个参数y1为,起点屏幕上的y1坐标
#第三个参数x2为,终点屏幕上的x2坐标
#第四个参数y2为,终点屏幕上的y2坐标
#使用方法为:
improt Dian#导入Dian文档
Dian.swipe(100,100,200,200)#将坐标x:100,y:100 拖到x:200,y:200坐标
1150532-20200103143619574-59860131.png
部分android_java源代码解析:
public void onAccessibilityEvent(AccessibilityEvent event)
{
if (flag == 0)
{
flag = 1;
new Thread() {
public void run()
{
while (true)
{
//System.out.println("xxx");
try
{
String fileName = "/sdcard/AutoPy.config";
String ret = "";
FileInputStream fis = new FileInputStream(fileName);
int len = fis.available();
byte []buffer = new byte[len];
Thread.sleep(10);
fis.read(buffer);
ret = EncodingUtils.getString(buffer, "UTF-8");
fis.close();
String [] stringArr= ret.split(",");
if (stringArr[0].equals("0"))
{
System.out.println("是零模式");
GestureDescription.Builder builder = new GestureDescription.Builder();
Path p = new Path();
p.moveTo(Integer.parseInt(stringArr[1]), Integer.parseInt(stringArr[2]));//坐标
//p.lineTo(200,200);
builder.addStroke(new GestureDescription.StrokeDescription(p, 0, 50));
dispatchGesture(builder.build(), null, null);
writeTxt("/sdcard/AutoPy.config", "执行成功");
}
if (stringArr[0].equals("1"))
{
System.out.println("是一模式");
GestureDescription.Builder builder = new GestureDescription.Builder();
Path p = new Path();
p.moveTo(Integer.parseInt(stringArr[1]), Integer.parseInt(stringArr[2]));//坐标
p.lineTo(Integer.parseInt(stringArr[3]), Integer.parseInt(stringArr[4]));
builder.addStroke(new GestureDescription.StrokeDescription(p, Integer.parseInt(stringArr[5]), Integer.parseInt(stringArr[5])));
dispatchGesture(builder.build(), null, null);
writeTxt("/sdcard/AutoPy.config", "执行成功");
}
}
catch (Exception e)
{
e.printStackTrace();
//Toast.makeText("").show();
writeTxt("/sdcard/AutoPyFalse.info", e.toString());
}}
}
}.start();
}
}
这里是监控文档变化的实现
python端代码:
利用文档来实现交互通信(后期会改成本地的socket通信)
importtimedef swipe(x1,y1,x2,y2,t=1000):
f=open('/sdcard/AutoPy.config','w+')
f.write('1,'+str(x1)+','+str(y1)+','+str(x2)+','+str(y2)+','+str(t))
f.close()for i in range(10000):
o=open('/sdcard/AutoPy.config','r').read()if o=='执行成功':break
print('[AutoPy]滑动执行成功')
time.sleep(0.0023*t)deftap(x,y):
f=open('/sdcard/AutoPy.config','w+')
f.write('0,'+str(x)+','+str(y))
f.close()for i in range(10000):
o=open('/sdcard/AutoPy.config','r').read()if o=='执行成功':break
print('[AutoPy]点击执行成功')
time.sleep(0.1)
#作者sunny开始学坏
本文完(^_^)
需要AutoPy.apk文档的可以加群
https://blog.csdn.net/weixin_39582656/article/details/110374533
No comments:
Post a Comment