Skip to main content

工程的创建 分享 启动 结束

info

你应该准备好这些环境

  1. 准备好Python 3.8 以上的开发环境(如果已经下载Python3.8以上的就不用换了)

    温馨提示:Python 的版本其实不是必须的, 只是为了方便语法提示!

    推荐安装使用:👉 下载 python-3.8.5-amd64.exe

  2. 安装好Pycharm(2021.3+ 以上版本)

    👉 PyCharm Community Edition 官方下载

  3. PyCharm配置本地解析器

    👉 查看参考文档

  4. 安装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 安装到手机上

  5. 确保你的手机自动化引擎与脚本引擎均已提示激活, 即在主界面看到两个绿色的勾。

    👉 跳转到激活教程

caution

1.不要把工程无关文件放到目录, 如放apk, 导致压缩工程文件过大导致传输工程失败! 2.注意 Pycharm提示你选择python解析器的时候不要选择venv, 会导致创建一堆文件在工程目录, 导致压缩打包过慢或者文件过大而推送工程到手机失败!
要选择已经下载好的python, 即本地解析器, 代码同时支持在手机与电脑运行!

方式一: 从模版工程开始创建(新手一定要从这里开始, 否则会遇到很多问题)

  1. 克隆或直接下载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
  1. 使用 pycharm 打开下载好的代码(若提示是否信任工程, 点击信任)

  2. 编辑 project.config 里面的ip 为你的手机为ip

  3. 推送并运行代码

方式二: 手动创建工程(不推荐, 仅用于学习了解原理, 需要自行编写大量代码)

info

一个最简单的项目只有两个文件, 一个 main.py 文件, 一个 project.config 配置文件ui.yml , 在下图 learnProject就是工程目录

  1. 创建project.config文件, 这是一个简单的ini配置文件, 根据你的实际配置变量(一定将DEBUG_DEVICE_IP改成自己的手机地址, 这个地址可以在已经安装的Yyds.Auto_76_4.96_release.apk查看, 所以一定要做好前面的环境准备), 所有配置将会影响到你接下来的运行与调试
工程目录/project.config
[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.查看日志 如图:

分享工程

  1. Pycharm - Yyds.Auto - 打包插件
  2. 刷新一下工程目录, 你会发现上述操作会生成一个zip文件, 尽量不要改动这个文件的名字!
  3. 将这个文件放多sdcard目录, 放到 /sdcard/Download 这样的目录也可以, 只要是sdcard或者sdcard下面的目录就可以
  4. 手机打开 Yyds.Auto 软件, 脚本引擎 - 搜索成功 - 释放
  5. 刷新工程列表, 将会看到工程已经被识别

运行工程

  1. 在IDE中使用开发插件运行
  2. 在PC电脑中使用YY 畅控运行
  3. 在手机中手动打开Yyds.Auto应用, 脚本管理-> 点击"▶️"开始运行, 或者在通知栏中下拉运行
  4. 作为独立进程运行脚本, 方便定制开机脚本等功能, 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 案例工程
  1. 通过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"}]

停止工程

🛌🏻 停止工程与运行工程类似, 有一点不同的是, 当安卓屏幕熄灭的时候, 默认会🟥停止脚本执行