• 从autojs到冰狐智能辅助的心里历程


     autojs无疑是目前为止比较不错的app自动化工具,用过,也遇到过不少坑。最近在网上闲逛时偶然间发现了冰狐智能辅助这个平台,可以在不编程的情况下仅通过配置参数来实现app自动化,本人由之前的疑惑、怀疑,到试着做一下,再到后来逐渐爱上了冰狐智能辅助。下面我把自己的从autojs转到冰狐智能辅助的心里历程写出来,供大家在选择工具时参考。

    由于我不是专业开发人员,了解一点编程知识但不熟练,所以之前每次遇到项目时我都出钱让别人帮忙写autojs来实现,但随之而来的就是一个巨大的坑,就是后期由于各种原因(比如项目变更、或者app的界面发生变化、或者操作流程有变)需要修改脚本时,我变的非常非常非常地被动。经常出现开发脚本的人漫天要价,一个很小的改动就要好几百(现在看来冰狐只需要修改几个参数就搞定,1分钟的事情),还一副爱搞不搞的表情,很是老火,但又不能拒绝,否则之前的脚本就白开发了(就算换个人开发脚本大概率也会遇到同样的问题)。

    大概在今年年初左右在网上无意间发现了冰狐智能辅助,官方号称可以不写一行代码仅配置参数就可以搞定各种app的自动化,我刚开始抱着怀疑的态度(心想如果不用编程就能搞定,那程序员岂不都失业了么,吹牛也不能吹上天啊),后来想想还是试下吧,试下又不要钱,万一是真的呢,于是我花了2个小时把自动构建脚本的文档和相关视频例子仔细看了下,觉得还挺简单的,于是找个钉钉自动打卡的视频例子照着做了一次,顺利搞定,果然可以实现自动打卡,太神奇了,后面我就专心研究了几遍冰狐智能辅助,现在已经可以熟练的搞定任何app自动化了。

    熟悉冰狐智能辅助后,我把之前的autojs项目全部用冰狐智能辅助的自动构建脚本实现了一遍,后续项目任何变动我再也不被动了,项目的整个开发成本比以前低了不知道多少倍。现在我基本上已经完全抛弃autojs了,现在冰狐智能辅助是我的新宠,哈哈哈!

    下面用钉钉自动打卡作为例子,讲解下如何使用冰狐智能辅助:

    熟悉业务逻辑

    了解人工钉钉打卡的过程,也即熟悉业务逻辑,建议选择钉钉v6.5.10版本(其他版本操作界面可能会稍有不同,所以模块参数有可能要根据实际情况修改)。

    选择模块并配置参数

    在网页端「移动端」/「自动构建脚本」中新建一个“自动构建”,根据上一步的业务逻辑选择合适的自动构建模块并配置参数。

    元数据

    在配置自动构建模块和参数的过程中,系统会自动生成json格式的元数据用于描述选择的模块和参数,使用这个元数据可以快速复制一份完全一样的“自动构建”。

    1. // 请新建一个自动构建,然后点击"元数据",将如下元数据拷贝进去然后保存,系统会自动生成一个完整的自动构建demo。
    2. {
    3. "type": "root",
    4. "children": [{
    5. "type": "declareVar",
    6. "var": [{
    7. "name": "temp",
    8. "type": "normal",
    9. "initType": "null",
    10. "initValue": "null"
    11. }, {
    12. "name": "ret",
    13. "type": "normal",
    14. "initType": "null",
    15. "initValue": "null"
    16. }, {
    17. "name": "view",
    18. "type": "normal",
    19. "initType": "null",
    20. "initValue": "null"
    21. }, {
    22. "name": "viewContainer",
    23. "type": "normal",
    24. "initType": "null",
    25. "initValue": "null"
    26. }, {
    27. "name": "tag",
    28. "type": "normal",
    29. "initType": "null",
    30. "initValue": "null"
    31. }, {
    32. "name": "item",
    33. "type": "normal",
    34. "initType": "null",
    35. "initValue": "null"
    36. }, {
    37. "name": "index",
    38. "type": "normal",
    39. "initType": "null",
    40. "initValue": "null"
    41. }, {
    42. "name": "data",
    43. "type": "normal",
    44. "initType": "string",
    45. "initValue": ""
    46. }, {
    47. "name": "text",
    48. "type": "normal",
    49. "initType": "string",
    50. "initValue": ""
    51. }]
    52. }, {
    53. "type": "main",
    54. "desc": "业务逻辑入口",
    55. "debug": false,
    56. "params": [],
    57. "children": [{
    58. "type": "launchApp",
    59. "desc": "启动APP",
    60. "debug": false,
    61. "packageName": "com.alibaba.android.rimet",
    62. "tag": "txt:工作台#",
    63. "false": {},
    64. "failed": "",
    65. "maxStep": 30,
    66. "children": [{
    67. "type": "clickAndEnter",
    68. "desc": "点击进入工作台",
    69. "class": 1,
    70. "debug": false,
    71. "clickTag": "txt:工作台#",
    72. "root": "",
    73. "clickWidgetIndex": 0,
    74. "family": [],
    75. "descendant": [],
    76. "checkTag": "txt:应用中心#",
    77. "mode": "2",
    78. "false": {},
    79. "failed": "",
    80. "duration": 500,
    81. "maxStep": "8",
    82. "beforeWait": 0,
    83. "afterWait": 0,
    84. "children": [{
    85. "type": "clickAndEnter",
    86. "desc": "点击进入考勤打卡页面",
    87. "class": 1,
    88. "debug": false,
    89. "clickTag": "txt:考勤打卡#",
    90. "root": "",
    91. "clickWidgetIndex": "0",
    92. "family": [],
    93. "descendant": [],
    94. "checkTag": "txt:统计#",
    95. "mode": "2",
    96. "failed": "",
    97. "duration": "500",
    98. "maxStep": "8",
    99. "beforeWait": "0",
    100. "afterWait": "0",
    101. "children": [{
    102. "type": "click",
    103. "desc": "点击打开",
    104. "class": 1,
    105. "debug": false,
    106. "tag": "txt:上班打卡|txt:下班打卡#",
    107. "root": "",
    108. "widgetIndex": "0",
    109. "family": [],
    110. "descendant": [],
    111. "mode": "3",
    112. "failed": "",
    113. "maxStep": "5",
    114. "longClick": false,
    115. "random": true,
    116. "duration": "5000",
    117. "beforeWait": "0",
    118. "afterWait": "1000"
    119. }],
    120. "false": {}
    121. }]
    122. }]
    123. }]
    124. }],
    125. "desc": "根模块",
    126. "debug": false
    127. }

    编译运行

    1.在网页端「移动端」/「自动构建脚本」点击右边的“编译”按钮,将自动构建编译成与自动构建名称相同的js脚本。

    2.在网页端「移动端」/「移动端脚本」点击右边的“发布”按钮发布脚本。

    3.在网页端「移动端」/「移动端脚本」点击右边的“运行”按钮,并选择设备,然后执行。

  • 相关阅读:
    机器学习|模型评估——AUC
    21天学习挑战赛--图像物体的边界
    电商API接口爬虫程序,如何取有用数据
    新兴国家战略级安全话题-软件供应链安全
    LeetCode 1759. 统计同质子字符串的数目【字符串】1490
    Jackson多态反序列化
    Vue3 + 百度地图实现位置选择,获取地址经纬度
    【算法优选】双指针专题——贰
    hdu 3549 Flow Problem(最大流 EK,sap)
    MySQL主键类型使用int、bigint、varchar区别
  • 原文地址:https://blog.csdn.net/m0_62259629/article/details/125601811