当前位置:   article > 正文

基于autojs的快手抖音多应用一起刷的脚本,多页面ui_autojs脚本带ui界面教程

autojs脚本带ui界面教程

1)运行实例截图

 

 

 

 

 

主要运行原理

autojs 是模拟人手点击等手机自动化软件。可用于制作自动化脚本。

1)主要是上划,加一些关键词判断(避免卡在一些“我知道了”页面上划不了)

2)复杂一点的地方是同时支持多个应用,多个页面的ui设计。部分的源代码展示如下,如需要全部代码,请留言或私信

上划代码很简单:

  1. xishua_common.keeping_swipe = function(local_app_name,run_time,swipe_direction,swipe_time_min,swipe_time_max,swipe_time, click_back, click_words) {
  2. run_start_time = commonfunc.time_get_seconds()
  3. //获取当前时间
  4. commonfunc.log("将一直划动%d分钟", run_time)
  5. while(commonfunc.time_get_seconds() - run_start_time < run_time * 60) {//运行时间没有到
  6. if (commonfunc.app_get_current_app_name() == local_app_name) {
  7. xishua_common.error_handle(click_words) //此函数比较耗时,抖音极速版大概会有20秒左右
  8. if (swipe_direction == "上") {
  9. commonfunc.log("上划动")
  10. swipe(device.width * 0.52, device.height * 0.8, device.width * 0.48, device.height * 0.2, swipe_time)
  11. } else if (swipe_direction == "下"){
  12. commonfunc.log("下划动")
  13. swipe(device.width * 0.52, device.height * 0.2, device.width * 0.48, device.height * 0.8, swipe_time)
  14. } else if (swipe_direction == "左") {
  15. commonfunc.log("左划动")
  16. swipe(device.width * 0.8, device.height * 0.52, device.width * 0.2, device.height * 0.5, swipe_time)
  17. } else if (swipe_direction == "右") {
  18. commonfunc.log("右划动")
  19. swipe(device.width * 0.2, device.height * 0.52, device.width * 0.8, device.height * 0.5, swipe_time)
  20. } else {
  21. commonfunc.log("默认上划动")
  22. swipe(device.width * 0.52, device.height * 0.8, device.width * 0.48, device.height * 0.2, swipe_time)
  23. }
  24. }
  25. sleep_time = random(swipe_time_min, swipe_time_max)
  26. sleep(sleep_time * 1000)
  27. if (commonfunc.app_get_current_app_name() == local_app_name && click_back == true) {
  28. back()
  29. commonfunc.log("返回")
  30. } else {
  31. }
  32. }
  33. commonfunc.log(local_app_name+"运行时间到")
  34. }

 

多ui页面代码如下:

  1. "ui";
  2. ui.layout(
  3. <drawer id="drawer">
  4. <vertical>
  5. <appbar>
  6. <toolbar bg="#FF5c50e6" id="toolbar" title="喜刷" paddingTop="2dp" h="auto" >
  7. <button bg="#FF00CED1" id="start" layout_gravity="right" textColor="#ffffff" text="开始" style="Widget.AppCompat.Button.Borderless.Colored" w="auto" />
  8. </toolbar>
  9. <tabs id="tabs" />
  10. </appbar>
  11. <viewpager id="viewpager">
  12. <frame>
  13. {/* 第一级 主页*/}
  14. <scroll>
  15. <vertical>
  16. <card>
  17. <horizontal weightSum="4">
  18. <Switch id="autoService" text="无障碍服务" checked="{{auto.service != null}}" padding="8 8 8 8" textSize="15sp" layout_weight="2"/><Switch id="floatWindowPermission" text="悬浮窗权限" checked="{{floaty.checkPermission() == true}}" padding="8 8 8 8" textSize="15sp" layout_weight="2"/>
  19. </horizontal>
  20. </card>
  21. <card>
  22. <horizontal id="global_setting_1" weightSum="4">
  23. <text text="每个应用运行多久时间" layout_weight="1"/><input id="run_time" inputType="number" hint="分钟" layout_weight="1"/><text text="循环次数" layout_weight="1"/><input id="repeat_time" inputType="number" hint="循环" layout_weight="1"/>
  24. </horizontal>
  25. </card>
  26. <card>
  27. <horizontal id="click_words" weightSum="2">
  28. <text text="要点击的关键词" layout_weight="1"/><input id="jump_word" hint="多个关键词以@号分隔" layout_weight="1"/>
  29. </horizontal>
  30. </card>
  31. <card>
  32. <horizontal id="global_setting_2" weightSum="4">
  33. <text text="划动间隔最小时间"layout_weight="1"/><input id="swipe_time_min" inputType="number" hint="秒" layout_weight="1"/><text text="最大时间" layout_weight="1"/><input id="swipe_time_max" inputType="number" hint="秒" layout_weight="1"/>
  34. </horizontal>
  35. </card>
  36. <card>
  37. <horizontal weightSum="4">
  38. <text text="关闭视频" layout_weight="1"/><checkbox id="shutdown_video" layout_weight="1"/><text text="关闭声音" layout_weight="1"/><checkbox id="shutdown_audio" layout_weight="1"/>
  39. </horizontal>
  40. </card>
  41. <card>
  42. <horizontal weightSum="4">
  43. <text id="usage" text="用法说明视频" layout_weight="1"/>
  44. </horizontal>
  45. </card>
  46. </vertical>
  47. </scroll>
  48. </frame>
  49. <frame>
  50. {/* 第二级 已支持应用*/}
  51. <scroll>
  52. <vertical>
  53. <card id="app_card_0" w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" foreground="?selectableItemBackground">
  54. <vertical>
  55. <horizontal weightSum="4">
  56. <checkbox id="app_is_run_0"/><text id="app_name_0" text="第一个应用" layout_weight="1"/><text text="运行时间" layout_weight="1"/><input id="app_run_time_0" hint="分钟" layout_weight="1"/>
  57. </horizontal>
  58. </vertical>
  59. </card>
  60. <card id="app_card_1" w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" foreground="?selectableItemBackground">
  61. <vertical>
  62. <horizontal weightSum="4">
  63. <checkbox id="app_is_run_1"/><text id="app_name_1" text="第一个应用" layout_weight="1"/><text text="运行时间" layout_weight="1"/><input id="app_run_time_1" hint="分钟" layout_weight="1"/>
  64. </horizontal>
  65. </vertical>
  66. </card>
  67. <card id="app_card_2" w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" foreground="?selectableItemBackground">
  68. <vertical>
  69. <horizontal weightSum="4">
  70. <checkbox id="app_is_run_2"/><text id="app_name_2" text="第一个应用" layout_weight="1"/><text text="运行时间" layout_weight="1"/><input id="app_run_time_2" hint="分钟" layout_weight="1"/>
  71. </horizontal>
  72. </vertical>
  73. </card>
  74. <card id="app_card_3" w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" foreground="?selectableItemBackground">
  75. <vertical>
  76. <horizontal weightSum="4">
  77. <checkbox id="app_is_run_3"/><text id="app_name_3" text="第一个应用" layout_weight="1"/><text text="运行时间" layout_weight="1"/><input id="app_run_time_3" hint="分钟" layout_weight="1"/>
  78. </horizontal>
  79. </vertical>
  80. </card>
  81. <card id="app_card_4" w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" foreground="?selectableItemBackground">
  82. <vertical>
  83. <horizontal weightSum="4">
  84. <checkbox id="app_is_run_4"/><text id="app_name_4" text="第一个应用" layout_weight="1"/><text text="运行时间" layout_weight="1"/><input id="app_run_time_4" hint="分钟" layout_weight="1"/>
  85. </horizontal>
  86. </vertical>
  87. </card>
  88. <card id="app_card_5" w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" foreground="?selectableItemBackground">
  89. <vertical>
  90. <horizontal weightSum="4">
  91. <checkbox id="app_is_run_5"/><text id="app_name_5" text="第一个应用" layout_weight="1"/><text text="运行时间" layout_weight="1"/><input id="app_run_time_5" hint="分钟" layout_weight="1"/>
  92. </horizontal>
  93. </vertical>
  94. </card>
  95. <card id="app_card_6" w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" foreground="?selectableItemBackground">
  96. <vertical>
  97. <horizontal weightSum="4">
  98. <checkbox id="app_is_run_6"/><text id="app_name_6" text="第一个应用" layout_weight="1"/><text text="运行时间" layout_weight="1"/><input id="app_run_time_6" hint="分钟" layout_weight="1"/>
  99. </horizontal>
  100. </vertical>
  101. </card>
  102. <card id="app_card_7" w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" foreground="?selectableItemBackground">
  103. <vertical>
  104. <horizontal weightSum="4">
  105. <checkbox id="app_is_run_7"/><text id="app_name_7" text="第一个应用" layout_weight="1"/><text text="运行时间" layout_weight="1"/><input id="app_run_time_7" hint="分钟" layout_weight="1"/>
  106. </horizontal>
  107. </vertical>
  108. </card>
  109. <card id="app_card_8" w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" foreground="?selectableItemBackground">
  110. <vertical>
  111. <horizontal weightSum="4">
  112. <checkbox id="app_is_run_8"/><text id="app_name_8" text="第一个应用" layout_weight="1"/><text text="运行时间" layout_weight="1"/><input id="app_run_time_8" hint="分钟" layout_weight="1"/>
  113. </horizontal>
  114. </vertical>
  115. </card>
  116. <card id="app_card_9" w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" foreground="?selectableItemBackground">
  117. <horizontal weightSum="4">
  118. <checkbox id="app_is_run_9"/><text id="app_name_9" text="第一个应用" layout_weight="1"/><text text="运行时间" layout_weight="1"/><input id="app_run_time_9" hint="分钟" layout_weight="1"/>
  119. </horizontal>
  120. </card>
  121. </vertical>
  122. </scroll>
  123. </frame>
  124. <frame>
  125. {/* 第三级 高级用户*/}
  126. <scroll>
  127. <vertical>
  128. <card w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" foreground="?selectableItemBackground">
  129. <vertical>
  130. <horizontal weightSum="4">
  131. <checkbox id="cust_app_is_run_0"/><input id="cust_app_name_0" layout_weight="1"/><text text="运行时间" layout_weight="1" /><input id="cust_app_run_time_0" hint="分钟" layout_weight="1"/>
  132. </horizontal>
  133. <horizontal weightSum="6">
  134. <text text="划动方向" layout_weight="1"/><input id="cust_app_direction_0" hint="上下左右" layout_weight="1"/><text text="速度" layout_weight="1"/><input id="cust_app_speed_0" hint="1到10" layout_weight="1"/><checkbox text="是否返回" id="cust_app_click_back_0" layout_weight="1"/>
  135. </horizontal>
  136. </vertical>
  137. </card>
  138. <card w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" foreground="?selectableItemBackground">
  139. <vertical>
  140. <horizontal weightSum="4">
  141. <checkbox id="cust_app_is_run_1"/><input id="cust_app_name_1" layout_weight="1"/><text text="运行时间" layout_weight="1" /><input id="cust_app_run_time_0" hint="分钟" layout_weight="1"/>
  142. </horizontal>
  143. <horizontal weightSum="6">
  144. <text text="划动方向" layout_weight="1"/><input id="cust_app_direction_1" hint="上下左右" layout_weight="1"/><text text="速度" layout_weight="1"/><input id="cust_app_speed_1" hint="1到10" layout_weight="1"/><checkbox text="是否返回" id="cust_app_click_back_1" layout_weight="1"/>
  145. </horizontal>
  146. </vertical>
  147. </card>
  148. <card w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" foreground="?selectableItemBackground">
  149. <vertical>
  150. <horizontal weightSum="4">
  151. <checkbox id="cust_app_is_run_2"/><input id="cust_app_name_2" layout_weight="1"/><text text="运行时间" layout_weight="1" /><input id="cust_app_run_time_0" hint="分钟" layout_weight="1"/>
  152. </horizontal>
  153. <horizontal weightSum="6">
  154. <text text="划动方向" layout_weight="1"/><input id="cust_app_direction_2" hint="上下左右" layout_weight="1"/><text text="速度" layout_weight="1"/><input id="cust_app_speed_2" hint="1到10" layout_weight="1"/><checkbox text="是否返回" id="cust_app_click_back_2" layout_weight="1"/>
  155. </horizontal>
  156. </vertical>
  157. </card>
  158. <card w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" foreground="?selectableItemBackground">
  159. <vertical>
  160. <horizontal weightSum="4">
  161. <checkbox id="cust_app_is_run_3"/><input id="cust_app_name_3" layout_weight="1"/><text text="运行时间" layout_weight="1" /><input id="cust_app_run_time_0" hint="分钟" layout_weight="1"/>
  162. </horizontal>
  163. <horizontal weightSum="6">
  164. <text text="划动方向" layout_weight="1"/><input id="cust_app_direction_3" hint="上下左右" layout_weight="1"/><text text="速度" layout_weight="1"/><input id="cust_app_speed_3" hint="1到10" layout_weight="1"/><checkbox text="是否返回" id="cust_app_click_back_3" layout_weight="1"/>
  165. </horizontal>
  166. </vertical>
  167. </card>
  168. <card w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" foreground="?selectableItemBackground">
  169. <vertical>
  170. <horizontal weightSum="4">
  171. <checkbox id="cust_app_is_run_4"/><input id="cust_app_name_4" layout_weight="1"/><text text="运行时间" layout_weight="1" /><input id="cust_app_run_time_4" hint="分钟" layout_weight="1"/>
  172. </horizontal>
  173. <horizontal weightSum="6">
  174. <text text="划动方向" layout_weight="1"/><input id="cust_app_direction_4" hint="上下左右" layout_weight="1"/><text text="速度" layout_weight="1"/><input id="cust_app_speed_4" hint="1到10" layout_weight="1"/><checkbox text="是否返回" id="cust_app_click_back_4" layout_weight="1"/>
  175. </horizontal>
  176. </vertical>
  177. </card>
  178. </vertical>
  179. </scroll>
  180. </frame>
  181. <frame>
  182. {/* 第四页 调试和帮助*/}
  183. <scroll>
  184. <vertical>
  185. </vertical>
  186. </scroll>
  187. </frame>
  188. </viewpager>
  189. </vertical>
  190. </drawer>
  191. )

每个支持的应用顺序执行,时间到后退出,进行下一个应用:

  1. i = 0
  2. while(i < run_supported_app_array.length) {
  3. commonfunc.log("运行"+run_supported_app_array[i].name)
  4. for (j = 0; j < supported_app_array.length; j++) {
  5. if (run_supported_app_array[i].name == supported_app_array[j].name) {
  6. //寻找到了默认的支持的应用,划动的速度是每次划动500ms
  7. supported_app_array[j].script.watch_video(run_supported_app_array[i].run_time,
  8. Number(swipe_time_min_val),Number(swipe_time_max_val),5*100,mute_audio,mute_video,jump_word_array)
  9. break
  10. }
  11. }
  12. commonfunc.log("结束"+run_supported_app_array[i].name)
  13. if (commonfunc.app_get_current_app_name() == run_supported_app_array[i].name) {
  14. home()
  15. }
  16. sleep(2000)
  17. i = i + 1
  18. }

由于代码量比较大,贴出部分代码。

另外自己封装了一些常用函数在common.js。这样就能提高复用度。且不容易出错,需要引用的时候只需要执行:

commonfunc = require(PROJECT_ROOT + "common.js")

封装的函数代码有:

注释也写得比较清楚,可以大量减少开发时间

  1. //等待某个符合条件的控件出现,不使用平台的waitfor和untilFind,是因为这两个操作是阻塞的。默认等待10s
  2. common.widget_wait_timeout = function(selector_conditions, log_info, time) {
  3. if (!time) {
  4. time = 10000
  5. }
  6. find = selector_conditions.visibleToUser(true).findOne(time)
  7. //findOne返回控件或者null
  8. if (find) {
  9. if (log_info)
  10. common.log("等到了" + log_info)
  11. return find
  12. //返回控件,方便后续操作
  13. } else {
  14. if (log_info)
  15. common.log("等不到" + log_info)
  16. return null
  17. }
  18. }
  19. //利用n的bounds转化为有超时时间的等待
  20. //等待widget在某个父widget区域内出现
  21. common.widget_wait_timeout_in_widget = function(n, selector_conditions, log_info, time) {
  22. b = n.bounds()
  23. v = common.widget_wait_timeout(selector_conditions.boundsInside(b.left,b.top,b.right,b.bottom), null, time)
  24. if (v) {
  25. if (log_info) {
  26. common.log("等到" + log_info)
  27. }
  28. return v
  29. //返回控件,方便后续操作
  30. } else {
  31. if (log_info) {
  32. common.log("无法等到" + log_info)
  33. }
  34. return null
  35. }
  36. }

 

喜刷简介:

  1. 可以运行 快手极速版,抖音极速版,抖音火山版,微视等应用。
  2. 可以使手机显示黑屏画面,更加省电
  3. 也可以静音
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/111718
推荐阅读
相关标签
  

闽ICP备14008679号