工程的创建 分享 启动 结束
你应该准备好这些环境
准备好Python 3.8 以上的开发环境(如果已经下载Python3.8以上的就不用换了)
温馨提示:Python 的版本其实不是必须的, 只是为了方便语法提示!
推荐安装使用:👉 下载 python-3.8.5-amd64.exe
安装好Pycharm(2021.3+ 以上版本)
PyCharm配置本地解析器
安装Pycharm 开发插件与手机脚本引擎。
(1)将Ysds.Auto Pycharm 脚本开发插件-Vx.xxx.zip装到Pycharm中。 👉 插件下载
点击
File
, 再点击Setting
, 在Setting
界面中找到Plugins
, 在右边找到工具图标(如下图), 点击之后就会出现Install Plugin from Disk
, 之后就找到你下载的 Ysds.Auto Pycharm 脚本开发插件-Vx.xxx.zip, 然后点击ok
, 重启Pycharm就可以了!(2)将Yyds.Auto_xx_x.xxx_release.apk 安装到手机上
确保你的手机自动化引擎与脚本引擎均已提示激活, 即在主界面看到两个绿色的勾。
1.不要把工程无关文件放到目录, 如放apk, 导致压缩工程文件过大导致传输工程失败!
2.注意 Pycharm提示你选择python解析器的时候不要选择venv, 会导致创建一堆文件在工程目录, 导致压缩打包过慢或者文件过大而推送工程到手机失败!
要选择已经下载好的python, 即本地解析器, 代码同时支持在手机与电脑运行!
方式一: 从模版工程开始创建(新手一定要从这里开始, 否则会遇到很多问题)
- 克隆或直接下载zip包代码
- 下载方式1:使用git下载代码
git clone git@gitee.com:MeetUnknown/yyds.-auto_-py-projcet.git
git clone https://gitee.com/MeetUnknown/yyds.-auto_-py-projcet.git
- 下载方式2:手动下载代码 https://gitee.com/MeetUnknown/yyds.-auto_-py-projcet
使用 pycharm 打开下载好的代码(若提示是否信任工程, 点击信任)
编辑 project.config 里面的ip 为你的手机为ip
推送并运行代码
方式二: 手动创建工程(不推荐, 仅用于学习了解原理, 需要自行编写大量代码)
一个最简单的项目只有两个文件, 一个 main.py
文件, 一个 project.config
配置文件和ui.yml
, 在下图 learnProject
就是工程目录
- 创建project.config文件, 这是一个简单的ini配置文件, 根据你的实际配置变量(一定将DEBUG_DEVICE_IP改成自己的手机地址, 这个地址可以在已经安装的Yyds.Auto_76_4.96_release.apk查看, 所以一定要做好前面的环境准备), 所有配置将会影响到你接下来的运行与调试
[default]
# 注意'#'开头为注释
# [必填]工程名 支持中文英文数字组合, 勿加特殊符号!
PROJECT_NAME=test
# [打包必填]工程版本
PROJECT_VERSION=1.0
# [调试必填]调试设备IP地址, 在App可以看到
DEBUG_DEVICE_IP=192.168.31.125
2.创建ui.yml 文件 这是一个ui配置文件
# 此处定义 ui 配置文件, # 开头为注释内容, 注释内容可删掉, 可随意改动
# 一共六种 ui 类型 text(文本显示); div(横线); space(空格占位); select(列表选择); edit(编辑框); check(开关按钮)
# 其中 select(字符串值配置), edit(字符串值配置), check(布尔值配置)为配置值
# 各种 ui 类型可设置属性参考如下示例, 如果示例没有该属性, 则代表暂不支持
# 定义格式为 ui类型名-ui名字, 定义名字应该是**唯一**的!
text-gg:
# 默认文本内容
value: "欢迎养鸡(批量版)\n"
# 文本颜色
color: "#696969"
# 文字大小
size: 30
text-version:
# 默认文本内容
value: "请使用最新版本Yyds.Auto运行\n"
# 文本颜色
color: "#222222"
# 一条分割线
div-note---:
# 输入
edit-tagCount:
title: "打标签个数"
value: "15"
# 高度100的占位空行
space--:
height: 10
# 输入
edit-tagFileName:
title: "读入标签文件名(不用加.txt)"
value: "标签"
# 高度100的占位空行
space-gg:
height: 40
select-task:
title: "[单个执行]"
color: "#DC143C"
background: "#F0F8FF"
# select的默认值为第一个
value: ["小米应用商店", "抖音", "抖音极速版", "快手", "快手极速版", "QQ浏览器",
"今日头条", "今日头条极速版", "百度浏览器", "小米浏览器"]
# 高度100的占位空行
space-1:
height: 20
text-note-4:
# 默认文本内容
value:
"
批量执行设置说明:\n
\n
- (设置了批量执行, 则单个执行无效, 使用空格分开):\n
\n
- 小米应用商店0; 抖音1; 抖音极速版2; 快手3; 快手极速版4; QQ浏览器5; 今日头条6; 今日头条极速版7; 百度浏览器8; 小米浏览器9\n
\n
- 示例: 2 3 7 (注意使用空格分开每个任务号) 则先后运行 抖音极速版->快手->今日头条极速版\n
"
# 文本颜色
color: "51A200"
# 文字大小
size: 9
# 高度100的占位空行
space-2:
height: 10
# 输入
edit-multi-task:
title: "[批量执行]"
value: "9 5 3 2 1"
3.创建入口代码文件main.py, 记得把main.py 里默认生成的代码全删了
接下来就写一个简单的demo, 在手机里弹出一个消息
在main.py 里添加一个toast函数 和一个mian函数, 简单说明一下 在toast函数里有一个engin_api("/toast",{"content:" content})这个是调用java后端, 有兴趣的加入vip课群, 理解底层
而main函数是作为工程运行的入口, 这是一定要存在的 , 你的python代码从这里开始运行, main函数会被自动调用
def toast(content: str):
"""
信息提示
需要打开 应用 后台窗口弹出权限
"""
engine_api("/toast", {"content": content})
def main():
toast("你好, 欢迎来到yyds学堂")
4.运行工程(点击Yyda.Auto, 然后点击推送并运行,并不是直接运行main函数)
5.查看日志 如图:
分享工程
- Pycharm - Yyds.Auto - 打包插件
- 刷新一下工程目录, 你会发现上述操作会生成一个zip文件, 尽量不要改动这个文件的名字!
- 将这个文件放多sdcard目录, 放到 /sdcard/Download 这样的目录也可以, 只要是sdcard或者sdcard下面的目录就可以
- 手机打开 Yyds.Auto 软件, 脚本引擎 - 搜索成功 - 释放
- 刷新工程列表, 将会看到工程已经被识别
运行工程
- 在IDE中使用开发插件运行
- 在PC电脑中使用YY 畅控运行
- 在手机中手动打开Yyds.Auto应用, 脚本管理-> 点击"▶️"开始运行, 或者在通知栏中下拉运行
- 作为独立进程运行脚本, 方便定制开机脚本等功能, python的print将会定向到标准输出流!(注意自动化引擎也是需要运行)
# 将会独立运行名为案例工程的python工程
CLASSPATH=$(cut -d ':' -f2 <<< `pm path com.yyds.auto`) exec app_process /system/bin pyengine.PyProcess 案例工程
# 如命令行不支持上述命令, 还可尝试以下命令, 不报错即可, 仅仅是获取apk路径的命令区别
CLASSPATH=$(pm path com.yyds.auto | awk -F ':' '{print $2}') exec app_process /system/bin pyengine.PyProcess 案例工程
CLASSPATH=$(pm path com.yyds.auto | sed 's/[^:]*://') exec app_process /system/bin pyengine.PyProcess 案例工程
- 通过http启动
工程管理HTTP接口
为了便于开发中控软件, 提供以下工程管理HTTP接口, 均为get请求方式
当前工程运行状态
GET http://192.168.0.105:61140/project/status
返回示范:
false,null
true,示例工程
启动工程
GET http://192.168.0.105:61140/project/start?name=示例工程
返回示范:
false,null
true,示例工程
终止工程
GET http://192.168.0.105:61140/project/stop
返回示范:
success
列出所有工程
GET http://192.168.0.105:61140/project/list
返回示范:
[{"folderName":"案例工程","folderPath":"/storage/emulated/0/Yyds.Py/案例工程","lastDate":"2024-02-18 07:33:25","name":"案例工程","version":"1.1"}]
停止工程
🛌🏻 停止工程与运行工程类似, 有一点不同的是, 当安卓屏幕熄灭的时候, 默认会🟥停止脚本执行