基于autojs的好友列表名片点赞脚本源码分享

说明

本文提供的代码仅供参考。不建议用于生产环境。
可能有些地方在最新版本的Auto.js上面需要做修改,才能运行。

Auto.js简介

Auto.js是利用安卓系统的“辅助功能”实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作。
与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找窗口句柄来实现的。

Auto.js使用JavaScript作为脚本语言,目前使用Rhino 1.7.7.2作为脚本引擎,支持ES5与部分ES6特性。

推荐教程

Auto.js Pro安卓全分辨率免ROOT引流脚本开发视频教程(HD超清1080p)

开发文档

Auto.js Pro开发文档
文档尚在完善中,可能有文档描述和代码实际行为有出入的情况。

为什么要使用Auto.js Pro开发脚本,有什么特点?

吸引我使用Auto.js Pro的原因有很多。最主要的几个原因是:

  • Auto.js Pro能开发免ROOT的安卓脚本
  • Auto.js Pro基于节点操作,能开发全分辨率的脚本,自动适配各种安卓机型
  • Auto.js Pro丰富的UI组件,能自定义各种样式的安卓界面
  • Auto.js Pro使用的javascript的语法比较优雅,代码可读性强
  • Auto.js Pro的命令库非常的丰富,接口比较多
  • Auto.js Pro脚本文件体积比较小。1000行的代码,打包后的apk文件只有3-5M,还没有广告

免责声明

本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途。

示例代码

// 此代码由飞云脚本圈www.feiyunjs.com整理提供
"auto";

//漏赞过多请稍微调大延迟
var 延迟 = 200;

launchApp("QQ");
//点击联系人图标
className("TabWidget").findOne().child(1).click();
toast("请展开要点赞的分组");
var fail = 0;

while(true){

  var list = id("elv_buddies").className("AbsListView").findOne();
  var count = list.childCount();
  print("count" + list.childCount());
  
  for(let i = 0; i < count; i++){
    try{
      let child = list.child(i);
      print(i);
      if(isFriend(child)){
        //点进好友名片
        child.click();
        fav(10);
        backToList();
        sleep(延迟);
      }
    }catch(e){
      fail++;
      toast("可能漏赞:" + fail);
    }
  }
  list.scrollForward();
}

//点赞
function fav(times){
  var i = 0;
  var btn = descEndsWith("点击可赞").findOne();
  while(i < times){
    i += btn.click()? 1 : 0;
  }
}

//判断是否是好友的视图
function isFriend(child){
  return child && child.className().endsWith("LinearLayout") && child.childCount() == 2 && child.child(0).className().endsWith("FrameLayout");
}

//返回好友列表
function backToList(){
  id("ivTitleBtnLeft").click();
}

你可能感兴趣的:(脚本源码)