源代码和Apk地址链接:https://pan.baidu.com/s/1royu3pvZ0Z_KAlfqtLBBGw  密码:yeph

专业版肯定比个人版功能强大并且要稳定。增加了很多功能的同时也测试封号的App,对于封号的App,给予剔除。虽然App数量减少了但是都是稳定的且收益比较高的。并且一天也就刷那么十几个而已。专业版比较个人版增加了按照时间刷刷刷。同时每个app的时间可以设置,时间到达后自动进入下一个App。时间是一天之内的时间,也就是说一天之内不超过100分钟,即使间断执行程序也会按照设定时间执行。最后执行的时间就是100分钟。

专业版增加清理缓存的功能。每次看视频结束后都会清理缓存。这样保证手机内容小的的福音。同时也是对老手机防卡的一个操作。

专业版增加自动评论功能,这个功能是最难的,操作很多且再输入的时候经常出现错误,一般使用的输入代码是setText和Input。另外有的APP没有评论功能。

专业版签到较之前个人版签到做了个大改版,每个App的签到都和App刷刷放到了一起。无论是签到、自动清理缓存、自动答复都使用了wateFor函数。(其实要慎用)

专业版增加最实用的功能就是自动提现。目前提现的金额是最低额度。(接受定制)

专业版修复了一些bug,同时也增加了一些功能。如:

  1. 修复了点赞和关注的BUG
  2. 增加了点赞和关注功能的概率(个人版是将代码写成了硬代码)
  3. 自动评论也增加了概率

专业版最大的改动其实是代码的优化。对代码做了整体规划也采用了中文名称。这样对对于阅读和修改都是非常便利的。看下截图:

薅羊毛专业版用到技术颇多。因为打包成Apk肯定有和用户交互的地方那也就意味着有UI界面。列举一下技术有需要技术的也可以查看本文档来复制代码。

  1. AutoJs UI技术。List、button、checkbox、input、swich等控件。
  2. AutoJs UI技术复杂页面布局。抽屉、headermenu、tab页面、垂直布局、水平布局等。
  3. Image图标使用base64格式显示。
  4. AutoJs 悬浮框。
  5. AutoJs 开启无障碍权限代码。
  6. AutoJs 开启悬浮窗权限代码。
  7. 多线程。
  8. Http访问网络。
  9. 控制台。
  10. 本地存储。
  11. 按键模拟。
  12. 事件与监听。
  13. 对话框。
  14. 设备信息。
  15. App常用函数。

先不吹牛技术了,咱们直接看薅羊毛个人版APP的截图。如下:

这个是写的JS脚本在AutoJs里面的效果。咱们看一看薅羊毛UI版的截图。

薅羊毛首页,Splash页面。可以做很多东西……

薅羊毛配置页面

前2项我就不多说了,友情提醒先开启无障碍在开启悬浮否则App会挂掉。

  1. 控制台还是不建议开启,有的App签到会失败。
  2. 是否开Toast提示,其实是无所谓的。
  3. 是否自动签到,这个还是很意义的,之前我放自动刷的前面发现有的app会卡住,防止万一我把签到放到自动刷的后面了和清理内存一起
  4. 自动评论,在我看来整个app最难的就是这个,太难了…….另外不是所有的App都让评论。
  5. 自动清理缓存,整个说过了。
  6. 自动提现,目前都是最小金额。
  7. 执行天数,大于1天就行反正我们手机少,如果是工作室多几天还行不过别指望无障碍玩工作室那样你会很崩溃,
  8. 滑动屏幕间隔,这个我默认是8秒。
  9. 随机概率,默认是十分之一,该不该无所谓吧,主要是随机点赞、随机关注、随机评论、随机上滑、随机下滑。控制着几个事件的随机概率。

薅羊毛专业版系统页面:

  1. 日志,我会将更新的日志发到这里
  2. 此版本将支持在线更新
  3. 教程还是我CSDN博客地址(以后会改)
  4. 关于就是版权说明,强调一下,我之前发布的代码有很多人转载也没写版权我就不追究了,如果有人利用我的源码和Apk文件在网络上贩卖我一定会追究。
  5. 退出……没啥说的吧

接下来我把整个App比较难写的地方写贴出来给大家提个醒,可能你们认为不是问题。献丑了不要见笑。之后我会将所有代码求全部贴出。

部局的时候出现了点问题,一直找不到合理的部局且很难看(现在也不怎么好看)。后来在AutoJs中示例看到了复杂部局就学了一下,效果还可以吧。

代码如下:

数据绑定代码:

function initializeFirstFrame() {for (let i = 0; i < videoArray.length; i++) {let appName = videoArray[i];let signMessage = "未签";let signValue = getSignTime(appName);let signColor = "#FF0000";if (getDate() == signValue) {signMessage = "已签";signColor = "#228B22";}//今日薅羊毛时间 1440 1400 1605-20=1585-1440=145-60=85-20=65-60let execTimesMessage = "";let key = appName + storageSign + getDate();let havedRunTimes = woolStorage.get("" + key + "");if (havedRunTimes == null) {execTimesMessage = ("已刷:0分");} else {if (parseInt(havedRunTimes) < 1000 * 60) {execTimesMessage = ("已刷时间小于1分钟");}let havedMinute = (havedRunTimes / 1000) / 60;//读取到的时间是毫秒需要转换成秒,转换成秒后在转换成分钟execTimesMessage = ("已刷:" + havedMinute.toFixed(2) + "分");}if (appName == "微视") {let row = { SignColor: signColor, AppName: videoArray[i], AppIndex: (i + 1), ExecTimes: "65", IsSign: signMessage, done: false, ExecTimesMessage: execTimesMessage };videoItems.push(row);} else if (appName == "抖音极速版") {let row = { SignColor: signColor, AppName: videoArray[i], AppIndex: (i + 1), ExecTimes: "30", IsSign: signMessage, done: false, ExecTimesMessage: execTimesMessage };videoItems.push(row);} else if (appName == "快手极速版") {let row = { SignColor: signColor, AppName: videoArray[i], AppIndex: (i + 1), ExecTimes: "180", IsSign: signMessage, done: false, ExecTimesMessage: execTimesMessage };videoItems.push(row);} else if (appName == "火山极速版") {let row = { SignColor: signColor, AppName: videoArray[i], AppIndex: (i + 1), ExecTimes: "120", IsSign: signMessage, done: false, ExecTimesMessage: execTimesMessage };videoItems.push(row);} else if (appName == "闪电盒子极速版") {let row = { SignColor: signColor, AppName: videoArray[i], AppIndex: (i + 1), ExecTimes: "50", IsSign: signMessage, done: false, ExecTimesMessage: execTimesMessage };videoItems.push(row);} else if (appName == "欢乐盒子") {let row = { SignColor: signColor, AppName: videoArray[i], AppIndex: (i + 1), ExecTimes: "50", IsSign: signMessage, done: false, ExecTimesMessage: execTimesMessage };videoItems.push(row);} else if (appName == "火火视频极速版") {let row = { SignColor: signColor, AppName: videoArray[i], AppIndex: (i + 1), ExecTimes: "120", IsSign: signMessage, done: false, ExecTimesMessage: execTimesMessage };videoItems.push(row);} else if (appName == "刷宝短视频") {let row = { SignColor: signColor, AppName: videoArray[i], AppIndex: (i + 1), ExecTimes: "60", IsSign: signMessage, done: false, ExecTimesMessage: execTimesMessage };videoItems.push(row);} else if (appName == "彩蛋视频") {let row = { SignColor: signColor, AppName: videoArray[i], AppIndex: (i + 1), ExecTimes: "120", IsSign: signMessage, done: false, ExecTimesMessage: execTimesMessage };videoItems.push(row);} else if (appName == "快音") {let row = { SignColor: signColor, AppName: videoArray[i], AppIndex: (i + 1), ExecTimes: "120", IsSign: signMessage, done: false, ExecTimesMessage: execTimesMessage };videoItems.push(row);} else if (appName == "中青看点") {let row = { SignColor: signColor, AppName: videoArray[i], AppIndex: (i + 1), ExecTimes: "100", IsSign: signMessage, done: false, ExecTimesMessage: execTimesMessage };videoItems.push(row);} else if (appName == "趣铃声") {let row = { SignColor: signColor, AppName: videoArray[i], AppIndex: (i + 1), ExecTimes: "120", IsSign: signMessage, done: false, ExecTimesMessage: execTimesMessage };videoItems.push(row);} else if (appName == "爱走路") {let row = { SignColor: signColor, AppName: videoArray[i], AppIndex: (i + 1), ExecTimes: "120", IsSign: signMessage, done: false, ExecTimesMessage: execTimesMessage };videoItems.push(row);} else if (appName == "闪鸭短视频") {let row = { SignColor: signColor, AppName: videoArray[i], AppIndex: (i + 1), ExecTimes: "60", IsSign: signMessage, done: false, ExecTimesMessage: execTimesMessage };videoItems.push(row);} else if (appName == "长豆短视频") {let row = { SignColor: signColor, AppName: videoArray[i], AppIndex: (i + 1), ExecTimes: "80", IsSign: signMessage, done: false, ExecTimesMessage: execTimesMessage };videoItems.push(row);} else {let row = { SignColor: signColor, AppName: videoArray[i], AppIndex: (i + 1), ExecTimes: "15", IsSign: signMessage, done: false, ExecTimesMessage: execTimesMessage };videoItems.push(row);}}ui.videoList.setDataSource(videoItems);//小视频绑定check事件 火火视频极速版 长豆短视频 ui.videoList.on("item_bind", function (itemView, itemHolder) {itemView.done.on("check", function (checked) {let item = itemHolder.item;item.done = checked;let appName = item.AppName;let appIndex = itemView.appIndex.getText();item.AppIndex = appIndex;item.ExecTimes = itemView.execTimes.getText();let brushTimes = itemView.execTimes.getText();if (checked) {havedVideoChecked.put(appName, appIndex);havedVideoTimes.put(appName, brushTimes);} else {havedVideoChecked.remove(appName);havedVideoTimes.remove(appName);}});});ui.videoList.on("item_click", function (item, i, itemView, listView) {itemView.done.checked = !itemView.done.checked;});
}

保存配置采用的是storage,这个是不安全的只要知道名称就可以访问,敏感数据不建议使用它。保存配置代码:

    ui.btnSaveWoolConfig.click(function () {woolStorage.put("isShowConsole", "" + ui.switchIsShowConsole.isChecked() + "");woolStorage.put("timesInterval", "" + ui.txtScreenSileTimesInterval.getText() + "");woolStorage.put("IsAutoSign", "" + ui.switchIsAutoSign.isChecked() + "");woolStorage.put("IsClearCache", "" + ui.switchIsClearCache.isChecked() + "");woolStorage.put("IsCashOut", "" + ui.switchIsCashOut.isChecked() + "");woolStorage.put("IsAutoComment", "" + ui.switchIsAutoComment.isChecked() + "");woolStorage.put("IsShowToast", "" + ui.switchIsShowToast.isChecked() + "");woolStorage.put("ForeachDays", "" + ui.txtForeachDays.getText() + "");//txtForeachDaystoast("薅羊毛专业版配置保存成功!");});

具体业务代码在我之前的文章里面已经写过了,我现在把完整代码贴一下,服务器信息是我的大家别乱搞就好了哈。

附赠Apk地址链接:https://pan.baidu.com/s/1royu3pvZ0Z_KAlfqtLBBGw  密码:yeph

最后再次强调:我提供的是源代码,Apk是附属产品。源码和Apk的用途本人概不负责。

基于AutoJs实现的薅羊毛App专业版源码大分享相关推荐

  1. 基于AutoJs实现的薅羊毛App专业版源码大分享---更新啦

    源码和Apk下载链接:https://pan.baidu.com/s/1qTwtt9Zh29mbh8z2K3jC7w  提取码:seg8 我在https://blog.csdn.net/zy04123 ...

  2. 基于AutoJs7实现的薅羊毛App专业版源码大分享

    源码下载链接:https://pan.baidu.com/s/1QvalXeUBE3dADfpVwzF_xg?pwd=0736 提取码:0736 专业版肯定比个人版功能强大并且要稳定.增加了很多功能的 ...

  3. 基于AutoJs4的快手专业版源码大分享

    源代码下载链接:https://pan.baidu.com/s/1wJSYw6uSbsoK1TfPAp3qng 提取码:rru8 快手极速版邀请码: 2rvxaem 道友请留步.1080P而且得是华为 ...

  4. 基于AutoJs实现的薅羊毛专业版第五次大更新

    源代码和Apk链接:https://pan.baidu.com/s/1uRifcZLS-nZt5EOKjVfyqA 提取码:bnnw 郑重声明薅羊毛专业版大概2周我会更新一次大版本. 原贴:https ...

  5. 基于AutoJs实现的薅羊毛专业版又一次大更新

    链接:https://pan.baidu.com/s/16NJLMBEb4ufHQQFDLoiaMw 提取码:ivk0 郑重声明薅羊毛专业版大概2周我会更新一次大版本. 介绍就不写了之前的文章已经写过 ...

  6. autojs写脚本:天启app脚本源码

    autojs写脚本:天启app脚本源码 个人保存而已. 源码中涉及到广告关闭.控件点击等函数.自己使用的. 需要的话需付费.不免费. 如果真有心,想学,源码中的编写脚本的逻辑等完全够用. var 日常 ...

  7. 在直播APP系统源码中基于腾讯视频云SDK制作简易版直播回放播放器

    在直播App系统中,当主播结束之后,我们需要使用播放器观看直播的一些回放片段,在观看回放的过程中,我们会使用到开始,暂停,控制播放位置,进度监听,全屏等功能,然而腾讯点播并没有提供这些简单的控制功能, ...

  8. wemall app商城源码Android之支付宝接口公用函数

    wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之 ...

  9. wemall app商城源码Android之支付宝通知处理类

    wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之处 ...

最新文章

  1. Linux下更改系统时区及时间
  2. python request post json_python接口之request测试:以json格式发送post请求,.json方法,查看响应结果的情况...
  3. Navicat中怎样将SQLServer的表复制到MySql中
  4. PAT_B_1015_C++(25分)
  5. koa --- 使用Github OAuth登录
  6. Java泛型,枚举,注解
  7. Java面试题以及答案精选(架构师面试题)-Spring专题
  8. [大学回忆录-思想]再谈我的专业技能
  9. COMPUTEX展 CPX论坛聚焦AI与物联网
  10. SAL Annotations的介绍
  11. 分享一款挡字幕小工具,自带翻译功能,方便看剧学英语、日语
  12. 编曲软件FL Studio 20.99中文版2023最新免费下载
  13. 0804Python总结-单继承,多继承,菱形继承,__init__魔术方法(构造方法)
  14. Android 3D滑动菜单完全解析,实现推拉门式的立体特效
  15. OracleLinux 6.4挂载NTFS盘的方法
  16. 防泄密-工业自动化控制行业源代码防泄密以及技术文档防泄密解决方案
  17. UIWebView 读取pdf,word,excel
  18. 计算机与应用工程技术职称答辩,技术工程师职称论文答辩流程
  19. aerospike数据库的使用
  20. linux排查进程退出原因面试,linux面试中经常会遇到的问题

热门文章

  1. MySQL没卸载干净
  2. freenas 当网站服务器,win10系统下如何安装FreeNAS来设置文件服务器
  3. kafka 查看待消费数据_kafka查看消费数据
  4. python基于svm项目+课程设计报告_单片机课程设计教学模式研究
  5. 数理化学习杂志数理化学习杂志社数理化学习编辑部2022年底12期目录
  6. lambda-collect-Collectors(Collectors.toCollection,groupingBy,partitioningBy,summingInt,joining)
  7. 如何避免支付宝被风控
  8. Cocos2dx.3x入门三部曲-Hello Game项目解析(三)
  9. java 团购_java短信接口和团购网站强强结合,优势明显
  10. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java线上培训机构信息备案平台gw53h