欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

easyclick与autojs的对比和常用代码(完善中)

程序员文章站 2022-03-26 19:45:11
启动appfunction 启动APP() { logd("启动APP中.") for (var i=0;i<30;i++){ var result = getRunningPkg(); var 包名="com.zhonglihe.ppt"; logd(result); if(result!=包名){ utils.openApp(包名); sleep(2000);...

作成了文档 链接:https://easydoc.xyz/s/10157628

部分代码收集于网络(现在已经不知道作者谁了),如有侵权,请私信我进行删除

启动app

function 启动APP() { logd("启动APP中.") for (var i=0;i<30;i++){ var result = getRunningPkg(); var 包名="com.zhonglihe.ppt"; logd(result); if(result!=包名){ utils.openApp(包名); sleep(2000); }else { logd("APP已经启动."); sleep(2000); return true; break; } } } 

utils.openApp(“com.zhonglihe.ppt”);//ec打开应用

launch(“com.tencent.mm”);//aj

logd(“APP已经启动.”);//ec的提示.当然,还有log

控件实例
var 看视频领彩金=text(“看视频 领现金”).getOneNodeInfo(0);
var 看广告=clz(“android.widget.ImageView”).index(1).depth(5).drawingOrder(3).getOneNodeInfo(0);
var 看广告1=clz(“android.widget.Image”).index(0).depth(15).drawingOrder(0).getOneNodeInfo(0);
var 关闭=clz(“android.widget.ImageView”).index(1).depth(5).drawingOrder(2).getOneNodeInfo(0);
var 广告结束=text(“star”).getOneNodeInfo(0);
var 关闭1=id(“com.zhonglihe.ppt:id/tt_video_ad_close_layout”).getOneNodeInfo(0);
if (看视频领彩金){
logd(“开始观看”);
看视频领彩金.click();
sleep(2000);
}
if (看广告 || 看广告1){
logd(“观看广告中.”);
sleep(2000);
}
if(关闭) {
logd(“广告观看完毕,开始关闭窗口”);
关闭.click();
sleep(2000);
return true;
break;
}
if (关闭1){
logd(“广告观看完毕,开始关闭窗口”);
关闭1.click();
sleep(2000);
return true;
break;
}

工具类模块函数

主要是跟Android常用的信息相关联
工具类模块的对象前缀是utils,例如 utils.requestShowLogPermission()这样调用
打开App相关
utils.openApp 打开APP
打开APP
@param packageName 程序的包名
@return 布尔型 true 代表成功,false 代表失败

function main(){
utils.openApp(“com.xx”);
}
main();
utils.openAppByName 打开APP(应用名称)
打开APP,通过应用名称
@param appName 程序名称,比如今日头条
@return 布尔型 true 代表成功,false 代表失败

function main(){
utils.openAppByName(“xx”);
}
main();
Copy to clipboardErrorCopied
utils.openActivity 打开activity
打开一个activity,通过map参数
@param map 例如{“action”:""},key的固定只有
action: 标准的android action字符串
uri: uri可以是http网址,也可以是文件file:///地址,也可以是 URLSchema语法
type: uri对应的type,等同于MIME类型,例如安装apk包的type是 application/vnd.android.package-archive
pkg: 要打开的activity对应的包名
className: 要打开的 className 对应的类名
flag: androi打开activity 标准的flag标志位,特殊情况下可以填写
其他的都是属于intent参数了
@return 布尔型 true 代表成功,false 代表失败

function main(){
//打开安装包界面
var m ={
“action”:“android.intent.action.VIEW”,
“uri”:“file:///sdcard/a.apk”,
“type”:“application/vnd.android.package-archive”
};
var x = utils.openActivity(m);
logd("x "+x);

var map={
    "uri":"xx://xx/live/6701887916223941379",
};
utils.openActivity(map); 

}
main();

utils.openIntentAction 通过Action打开某个界面
通过Action打开某个界面
@param action action动作,例如 android.settings.ACCESSIBILITY_SETTINGS = 辅助功能,
如果改方法不满足要求,可以直接使用intent进行打开:
常用的action有:
android.settings.ACCESSIBILITY_SETTINGS //辅助功能
android.settings.ADD_ACCOUNT_SETTINGS //添加账户
android.settings.AIRPLANE_MODE_SETTINGS //系统设置首页
android.settings.APN_SETTINGS //APN设置
android.settings.APPLICATION_SETTINGS //应用管理
android.settings.BATTERY_SAVER_SETTINGS //节电助手
android.settings.BLUETOOTH_SETTINGS //蓝牙
android.settings.CAPTIONING_SETTINGS //字幕
android.settings.CAST_SETTINGS //无线显示
android.settings.DATA_ROAMING_SETTINGS //移动网络
android.settings.DATE_SETTINGS //日期和时间设置
android.settings.DEVICE_INFO_SETTINGS //关于手机
android.settings.DISPLAY_SETTINGS //显示设置
android.settings.DREAM_SETTINGS //互动屏保设置
android.settings.HARD_KEYBOARD_SETTINGS //实体键盘
android.settings.HOME_SETTINGS //应用权限,默认应用设置,特殊权限
android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS //忽略电池优化设置
android.settings.INPUT_METHOD_SETTINGS //可用虚拟键盘设置
android.settings.INPUT_METHOD_SUBTYPE_SETTINGS //安卓键盘语言设置(AOSP)
android.settings.INTERNAL_STORAGE_SETTINGS //内存和存储
android.settings.LOCALE_SETTINGS //语言偏好设置
android.settings.LOCATION_SOURCE_SETTINGS //定位服务设置
android.settings.MANAGE_ALL_APPLICATIONS_SETTINGS //所有应用
android.settings.MANAGE_APPLICATIONS_SETTINGS //应用管理
android.settings.MANAGE_DEFAULT_APPS_SETTINGS //与ACTION_HOME_SETTINGS相同
android.settings.action.MANAGE_OVERLAY_PERMISSION //在其他应用上层显示,悬浮窗
android.settings.MANAGE_UNKNOWN_APP_SOURCES //安装未知应用 安卓8.0
android.settings.action.MANAGE_WRITE_SETTINGS //可修改系统设置 权限
android.settings.MEMORY_CARD_SETTINGS //内存与存储
android.settings.NETWORK_OPERATOR_SETTINGS //可用网络选择
android.settings.NFCSHARING_SETTINGS //NFC设置
android.settings.NFC_SETTINGS //网络中的 更多设置
android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS //通知权限设置
android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS //勿扰权限设置
android.settings.ACTION_PRINT_SETTINGS //打印服务设置
android.settings.PRIVACY_SETTINGS //备份和重置
android.settings.SECURITY_SETTINGS //安全设置
android.settings.SHOW_REGULATORY_INFO //监管信息
android.settings.SOUND_SETTINGS //声音设置
android.settings.SYNC_SETTINGS //添加账户设置
android.settings.USAGE_ACCESS_SETTINGS //有权查看使用情况的应用
android.settings.USER_DICTIONARY_SETTINGS //个人词典
android.settings.VOICE_INPUT_SETTINGS //辅助应用和语音输入
android.settings.VPN_SETTINGS //VPN设置
android.settings.VR_LISTENER_SETTINGS //VR助手
android.settings.WEBVIEW_SETTINGS //选择webview
android.settings.WIFI_IP_SETTINGS //高级WLAN设置
android.settings.WIFI_SETTINGS //选择WIFI,连接WIFI
com.android.settings.Settings$DevelopmentSettingsActivity
@return {null|boolean|*}

function main(){
utils.openIntentAction(“android.settings.ACCESSIBILITY_SETTINGS”);
}
main();

直接使用Intent打开方式

 importClass(android.content.Intent);
    importClass(android.net.Uri)
    var intent = new Intent();
    intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
    intent.setData(Uri.parse("package:com.gibb.easyclick"))
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    try {
         context.startActivity(intent);
    } catch (e) {
        loge(e)
    } 

图库相关
utils.insertImageToAlbum 图片插入相册
将图片插入到相册中,此方法会立刻更新相册数据
@param path 图片路径

function main(){
utils.insertImageToAlbum("/sdcard/a.png");
}
main();

utils.insertVideoToAlbum 视频插入相册
将视频插入到相册中,此方法会立刻更新相册数据
@param path 视频路径

function main(){
utils.insertVideoToAlbum("/sdcard/a.mp4");
}
main();

其他
utils.readConfigInt 读取整型配置
读取JSON中的整型数据
@param jsonObject JSON对象
@param key 配置项目
@return 整型,找不到就返回0

function main(){
var testData = utils.readConfigInt(jsonObject,“test_key”);
}
main();

utils.readJSONString 读取JSON中字符串
读取JSON中的字符串数据
@param jsonObject JSON对象
@param key 配置项目
@return 字符串 找不到就返回空字符串

function main(){
var testData = utils.readConfigString(jsonObject,“test_key”);
}
main();

utils.isObjectNull 判断一个对象为空
判断一个对象为空
@param o 对象
@return true或者false

function main(){
var isNull = utils.isObjectNull(“test_key”);
}
main();

utils.isObjectNotNull 判断一个对象不为空
判断一个对象不为空
@param o 对象
@return true或者false

function main(){
var isNull = utils.isObjectNotNull(“test_key”);
}
main();

utils.getRatio 取得比例
取得比例,例如10参数,就是返回10%的比例,如果是true,说明随机比例正确,否则不正确
@param ratio 浮点型 1-100
@return true或者false

function main(){
var ratio = utils.getRatio(20f);
toast(ratio);
}
main();
utils.getRangeInt 取得某个范围的随机值
取得某个范围的随机值
@param min 最小值
@param max 最大值
@return 在min和max中间的值,包含最大和最小值

function main(){
var value = utils.getRangeInt(1,100);
toast(value);
}
main();

utils.isTrue 判断布尔型对象是否为真
判断布尔型对象是否为真
@param r 布尔型对象
@return true 或者 false

function main(){
var value = utils.isTrue(true);
}
main();

utils.fileMd5 文件的MD5
文件的MD5
@param file 文件路径
@return 文件MD5字符串或者null

function main(){
var md5 = utils.fileMd5("/sdcard/a.txt");
}
main();

utils.dataMd5 数据计算出来的MD5
数据计算出来的MD5
@param data 数据
@return 数据MD5字符串或者null

function main(){
var md5 = utils.dataMd5(“data”);
}
main();

utils.randomInt 随机整型数据
随机整型数据
@param length 位数,要随机产生多少位的整型数据
@return 整型

function main(){
var r = utils.randomInt(2);
}
main();

utils.randomCharNumber 取得随机的数字和字母
取得随机的数字和字母
@param length 长度
@return 字符串数字混合

function main(){
var r = utils.randomCharNumber(2);
}
main();

utils.getApkPkgName 取得App文件的包名
取得App文件的包名
@param filePath 文件路径
@return 字符串

function main(){
var pkgName = utils.getApkPkgName("/sdcard/app.apk");
}
main();

utils.isAppExist App是否已经安装
App是否已经安装
@param packageName 应用程序的包名
@return true 代表已经安装,false代表未安装

function main(){
var result = utils.isAppExist(“com.xx”);
}
main();

utils.getAppVersionCode 程序的版本标示
取得已安装的程序的版本整型标示
@param packageName 应用程序的包名
@return 整型

function main(){
var versionCode = utils.getAppVersionCode(“com.xx”);
}
main();
utils.getAppVersionName 版本字符串标示
取得已安装的程序的版本字符串标示
@param packageName 应用程序的包名
@return 字符串 例如 1.0.0

function main(){
var r = utils.getAppVersionName(“com.xx”);
}
main();

utils.setClipboardText 设置剪贴板文本
设置剪贴板文本
@param text 文本
@return boolean

function main(){
var r = utils.setClipboardText(“com.xx”);
toast(“设置结果:”+r);
}
main();
utils.getClipboardText 读取剪贴板文本
读取剪贴板文本
@return string

function main(){
var r = utils.getClipboardText();
toast(“读取结果:”+r);
}
main();

random 随机函数
random(最小整数,最大整数);

点击函数
clickPoint 坐标点击
执行条件:无障碍7.0以上或者手势执行为代理服务
点击坐标
@param x x坐标
@param y y坐标
@return {boolean|布尔型}
function main(){
var result = clickPoint(100,100);
if (result){
toast(“点击成功”);
} else {
toast(“点击失败”);
}
}
main();
click 选择器点击
执行条件:无障碍7.0以上或者手势执行为代理服务
点击选择器
@param selectors 选择器对象
@return {boolean|布尔型}
function main(){
var selector = text(“我是文本”);
var result = click(selector);
if (result){
toast(“点击成功”);
} else {
toast(“点击失败”);
}
}
main();
clickText 点击文本
执行条件:无障碍7.0以上或者手势执行为代理服务
点击文本
@param text 文本
@return {boolean|布尔型}
swipeToPoint 坐标点滑动
swipeToPoint(10,10,100,100,200);

drag 拖动坐标
执行条件:无障碍7.0以上或者手势执行为代理服务
从一个坐标到另一个坐标的拖动
@param startX 起始坐标的X轴值
@param startY 起始坐标的Y轴值
@param endX 结束坐标的X轴值
@param endY 结束坐标的Y轴值
@param duration 持续时长 单位毫秒
@return 布尔型 true 拖动成功, false 拖动失败

function main(){
var result = drag(10,10,100,100,200);
if (result){
toast(“拖动成功”);
} else {
toast(“拖动失败”);
}
}
main();

pasteText 粘贴数据
执行条件:无障碍5.0以上
通过选择器粘贴数据
@param selectors 选择器
@param content 数据字符串
@return {boolean|布尔型}

function main(){
var selectors= clz(“android.widget.EditText”);
var result = pasteText(selectors,“我是内容”);
if (result){
toast(“是”);
} else {
toast(“否”);
}
}
main();

clearTextField 清除输入框数据
执行条件:无障碍5.0以上
@param selectors 节点选择器
@return {boolean|布尔型}

function main(){
var selectors= clz(“android.widget.EditText”);
var result = clearTextField(selectors);
if (result){
toast(“是”);
} else {
toast(“否”);
}
}
main();

has 节点存在判断
exits

通过选择器判断元素是否存在
@param selectors 选择器
@return {null|布尔型}

function main(){
var selectors = text(“设置”);
var result = has(selectors);
if (result){
toast(“存在节点”);
} else {
toast(“不存在节点”);
}
}
main();
waitExistActivity 等界面出现
等待activity界面出现
@param activity 界面名称
@param timeout 超时时间,单位毫秒
@return {null|布尔型}

function main(){
var ac = “com.xxx.MainActivity”;
var result = waitExistActivity(ac,10000);
if (result){
toast(“存在界面”);
} else {
toast(“不存在界面”);
}
}
main();

waitExistNode 等节点出现
通过选择器判断并等待元素是否存
@param selectors 选择器
@param timeout 超时时间,单位毫秒
@return {null|布尔型}

function main(){
var selectors = text(“设置”);
var result = waitExistNode(selectors,10000);
if (result){
toast(“存在节点”);
} else {
toast(“不存在节点”);
}
}
main();

getText 获取文本
获取选择器得到的文本数据
@param selectors 选择器
@return {字符串数组|null|字符串集合}

function main(){
var selectors = clz(“android.widget.TextView”);
var result = getText(selectors);
toast(“result:”+result);
}
main();

getOneNodeInfo 获取单个节点
通过选择器 获取第一个节点信息
@param selectors 选择器
@param timeout 等待时间,单位是毫秒
@return NodeInfo 对象或者null

function main(){
var result = getOneNodeInfo(clz(“android.widget.TextView”),10*1000);
toast(“result:”+result);
if (result){
result.click();
}
}
main();

setFetchNodeMode 获取节点的模式
设置获取节点的模式
@param mode 1 是增强型, 2 是快速型,默认是增强型
@param fetchInvisibleNode 是否抓取隐藏的元素,默认不抓取
@param fetchNotImportantNode 是否抓取不重要的元素
@return {boolean|*}

function main(){
var result = setFetchNodeMode(1,true,true);
toast(“result:”+result);
}
main();

home() 返回主页
power() 模拟电源按键
执行条件:无障碍5.0以上或者手势执行为代理服务
模拟电源按键,无障碍是电源对话框,代理模式是电源键按下

back() 返回键
执行条件:无障碍5.0以上或者手势执行为代理服务
返回键

openNotification 打开通知栏
执行条件:无障碍5.0以上或者手势执行为代理服务
打开通知栏
@return {null|布尔型}

function main(){
var result = openNotification();
if (result){
toast(“成功”);
} else {
toast(“失败”);
}
}
main();

openQuickSettings 打开快速设置
执行条件:无障碍5.0以上或者手势执行为代理服务
打开快速设置
@return {null|布尔型}

function main(){
var result = openQuickSettings();
if (result){
toast(“成功”);
} else {
toast(“失败”);
}
}
main();

recentApps 最近APP任务按键
执行条件:无障碍5.0以上或者手势执行为代理服务
最近APP任务按键
@return {null|布尔型}

function main(){
var result = recentApps();
if (result){
toast(“成功”);
} else {
toast(“失败”);
}
}
main();

getRunningPkg 当前运行的App包名
取得当前运行的App包名
@return {字符串|null}

function main(){
var result = getRunningPkg();
}
main();

getRunningActivity 当前运行的Activity类名
取得当前运行的Activity类名
@return {字符串|null}

function main(){
var result = getRunningActivity();
}
main();

通知栏
requestNotificationPermission 请求监听状态栏的权限
请求监听状态栏的权限
@param timeout 请求权限超时时间 单位是秒
@return true 代表请求权限成功,false代表失败

function main(){
var result = requestNotificationPermission(10);
toast(“是否有权限:”+result);
}
main();

hasNotificationPermission 是否有状态栏监听权限
检查是否含有状态栏监听权限
@return true 代表请求权限成功,false代表失败

function main(){
var result = hasNotificationPermission();
toast(“是否有权限:”+result);
}
main();

getLastNotification 获取最近通知栏对象
获取最近通知栏对象
@param pkg 指定包名
@param size 指定获取的条数
@return {NotificationInfo数组|null}

function main(){
var result = getLastNotification(“com.x”,100);
toast(“结果:”+result);
}
main();

getLastToast 获取toast数据
获取toast数据
@param pkg 指定包名
@param size 指定获取的条数
@return {null|ToastInfo数组}

function main(){
var result = getLastToast(“com.xx”,100);
toast(“结果:”+result);
}
main();

说明

设备模块函数

主要是跟设备信息相关联
设备模块的对象前缀是device,例如 device.getIMEI()这样调用
device.getIMEI() 获取IMEI
获取手机的IMEI
@return 字符串
device.getScreenWidth() 屏幕宽度
取得屏幕宽度
@return 整型
device.getScreenHeight() 屏幕高度
取得屏幕高度
@return 整型
device.getAndroidId() 取得Android ID
取得Android ID
@return 字符串
device.getBrand() 取得品牌
取得手机品牌
@return 字符串
device.getModel() 取得机型
取得手机机型
@return 字符串
device.getImsi() 取得卡号
取得手机卡号
@return 字符串
device.getSerial() 取得手机串号
取得手机串号
@return 字符串
device.getSdkInt() 取得安卓SDK 版本号.用来识别安卓版本
取得手机SDK 版本号,例如 23
@return 字符串
device.getOSVersion() 取得安卓版本号
取得手机版本号,例如 6.0等字符串
@return 字符串
device.getMacAddress() 获取mac地址
获取mac地址
@return 字符串
device.getBattery() 取得电量
取得电量
@return int型
device.getTotalMem() 取得总内存
取得总内存
@return long型
device.getAvailMem() 取得可用内存
取得可用内存
@return long型
device.isCharging() 是否正在充电
是否正在充电
@return 布尔型
device.vibrate(ms) 发出震动
发出震动 单位是毫秒
device.cancelVibration() 取消震动
取消震动
device.keepAwake() 保持设备唤醒
保持设备唤醒
@param flag 参考安卓PowerManager中的唤醒标准

function main(){
importClass(android.os.PowerManager)
device.keepAwake(PowerManager.SCREEN_DIM_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP);
}
main();
device.keepScreenOn 保持屏幕唤醒状态
保持屏幕唤醒状态
device.keepScreenDim() 保持设备昏暗状态
保持设备昏暗状态

function main(){
device.keepScreenDim();
}
main();
device.cancelKeepingAwake() 取消保持唤醒状态
取消保持唤醒状态

function main(){
device.cancelKeepingAwake();
}
main();

本文地址:https://blog.csdn.net/qq_30931547/article/details/108982846

相关标签: easyclick autojs