自动化脚本常用功能封装
哔哩哔哩:https://www.bilibili.com/video/BV15tfhYwE7g/
学前必备:
- 掌握JS基础
- 掌握Autojs基础和逻辑
主要内容:
- 渐进式讲解自动化功能的开发
- 自动化脚本常用功能封装
– 设备侦测 –
1、亮屏熄屏
// 判断是否亮屏
device.isScreenOn()
// 唤醒设备
device.wakeUp()
// 如果屏幕没有点亮,则唤醒设备。
device.wakeUpIfNeeded()
// 屏幕常亮,允许屏幕变暗
device.keepScreenDim()
// 屏幕常亮
device.keepScreenOn()
// 取消保持屏幕常亮
device.cancelKeepingAwake()
2、判断亮屏和熄屏
if(!device.isScreenOn()){
device.wakeUp();
sleep(1500);
}
// 判断有没有来到桌面
if(!text('微信').visibleToUser().findOnce()){
swipe(550,1900,550,500,1000);
sleep(2000);
home();
}
for(let i = 0;i<3;i++){
toast("官网:ataobc.com");
sleep(2000);
}
// 进行熄屏
click("锁屏");
// 熄屏方式2
runtime.accessibilityBridge.getService().performGlobalAction(android.accessibilityservice.AccessibilityService.GLOBAL_ACTION_LOCK_SCREEN);
3、封装亮屏熄屏函数
逻辑梳理
// 如果亮屏回到桌面,如果熄屏进入手机
if(!device.isScreenOn()){
device.wakeUp();
sleep(1000);
// 判断是否亮屏成功
if(desc("手电筒").findOnce()){
// 开始进入桌面
swipe(530,2000,500,500,500);
// 回到桌面
backHome();
}else{
// 亮屏失败,处理异常
toastLog("亮屏失败,请检查");
exit();
}
}else{
backHome();
}
// 屏幕常亮
// device.keepScreenOn()
封装函数
// 亮屏函数
function screenOn(flag){
// 如果亮屏回到桌面,如果熄屏进入手机
if(!device.isScreenOn()){
device.wakeUp();
sleep(1000);
// 判断是否亮屏成功
if(desc(flag).visibleToUser().findOnce()){
// 亮屏后进行操作
screenOpen();
// 回到桌面
backHome();
}else{
// 亮屏失败,处理异常
toastLog("亮屏失败,请检查");
exit();
}
}else{
backHome();
}
}
// 亮屏后操作函数
function screenOpen(){
// 开始进入桌面
swipe(530,2000,500,500,500);
// setText()
// click("1")
}
// 返回到桌面
function backHome(){
home();
for(let i = 0;i<10;i++){
// 判断是否再桌面
if(packageName("com.miui.home").findOnce()){
break;
}else{
back();
sleep(1000);
}
}
if(!text("微信").visibleToUser().findOnce()){
home();
}
toastLog('已回到桌面');
}
// 熄屏函数
function screenDown(){
backHome();
click('锁屏');
// 取消保持屏幕常亮
// device.cancelKeepingAwake();
// 或者
// runtime.accessibilityBridge.getService().performGlobalAction(android.accessibilityservice.AccessibilityService.GLOBAL_ACTION_LOCK_SCREEN);
}
1、清理缓存
// 清理内存
function clear() {
home();
sleep(1500);
recents()
while (!id("com.miui.home:id/clearAnimView").exists());
sleep(2000)
id("com.miui.home:id/clearAnimView").findOne().click();
sleep(3000)
}
1、打开APP
click("微信")
click(x,y)
//======判断有没有来到app内=======
// 1. 判断有没有标志性控件或者图片
// 2. 判断当前包名
// 获取根节点的对象
className("android.widget.FrameLayout").findOne();
// 获取当前app的Package
currentPackage()
=====================================
while(true){
var rootNode = className("android.widget.FrameLayout").findOne();
if(rootNode.packageName() == "com.ss.android.ugc.aweme"){
log("在app内");
sleep(1000);
}else{
log("不在app内");
app.launchPackage("com.ss.android.ugc.aweme");
sleep(3000);
}
}
👍