“auto.js”是个基于JavaScript语言运行在Android平台上的脚本框架,“auto.js”主要工作原理是基于辅助服务“AccessibilityService”。

Auto.js是利用安卓系统的“辅助功能”实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作。
与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找窗口句柄来实现的,这一点,挺优雅。
因为Auto.js是基于JavaScript的,学习Auto.js的API之前建议先学习JavaScript的基本语法和内置对象,可以使用avaScript教程来学习。
如果您想要使用TypeScript来开发,目前已经有开发者公布了一个可以把使用TypeScript进行Auto.js开发的工具,参见Auto.js DevTools。
如果想要在电脑而不是手机上开发Auto.js,可以使用VS Code以及相应的Auto.js插件使得在电脑上编辑的脚本能推送到手机运行,参见Auto.js-VSCode-Extension。
自动操作"的部分又可以大致分为基于控件和基于坐标的操作。基于坐标的操作是传统按键精灵、触摸精灵等脚本软件采用的方式,通过屏幕坐标来点击、长按指定位置模拟操作,从而到达目的。例如click(100, 200), press(100, 200, 500)等。这种方式在游戏类脚本中比较有可行性,结合找图找色、坐标放缩功能也能达到较好的兼容性。但是,这种方式对一般软件脚本却难以达到想要的效果,而且这种方式需要安卓7.0版本以上或者root权限才能执行。所以对于一般软件脚本(例如批量添加联系人、自动提取短信验证码等等),我们采用基于控件的模拟操作方式,结合通知事情、按键事情等达成更好的工作流。
在开发文档之外,个人遇到的问题,在此处记录
UI线程中循环语句循环多次后报错
Auto.js(以下简称AJ)要修改界面的属性,需使用
ui.run(function(){
//TODO
});在函数内不建议使用大量的逻辑代码,应尽量只包含少量的修改UI的代码。否则就会报错
Only the original thread that created a view hierarchy can touch its views.
比如像这样的代码,是很有可能出问题的
ui.run(function(){
for(var i=0;i登录后复制 应当改成:
for(var i=0;i 登录后复制
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!相关教程推荐
- 微信引用功能什么意思
- 微信小程序与app的区别
- 微信小程序是什么
- 小程序中生命周期的解析(附代码)
- 微信小程序实例:如何实现批量倒计时(附代码)
- 小程序中页面布局和绝对定位以及按钮代码
- 系统—微信小程序中利用短信验证码login实现流程及代码详解
- 学习小程序开始开发及基本配置
- 小程序之页面用九宫格及item跳转的功能实现
- 关于微信小程序中弹框和模态框的实现
- H5小程序开发
- 小程序开发要用到哪些技术
- 小程序开发新手常问问题
- 小程序开发的40个技术窍门
- 七种微信小程序开发中频繁出现的错误及解决方案
- 微信小程序开发有哪些常见问题?
- 微信小程序开发中的常见问题与解决方案
其他课程推荐
- linux下添加phpcurl扩展的方法
- php添加pcntl多线程扩展(Linux)
- 做php的应该很多懂linux吧,问个有关问题,本地开发好后,怎么只把最近一天修改过的文件同步到服务器
- imagegif函数linux下失败,windows下成功,为什么?解决思路
- linux下怎么安装php的扩展库
- 学习PHP,然后学习C,深入Linux的,如果想往底层发展,应该是如何的一个学习过程?
- linux进程如图这两个进程是什么?占用资源挺多的
- Cygwin下安装LinuxPHP环境和Swoole扩展并在PHPStorm中调试
- Linux下C++实现PHP扩展
- linuxphp5.3.x升级到php5.5.x
- linux下vim实现php远程调试环境搭
- linux php fopen怎么打不开远程文件?
- PHP施行linux命令
- Linuxservice服务管理
- Linux配置主机名
- Linux网络配置~修改IP地址
- Linuxvi/vim编辑器
- 为什么要学linux
- Linux
- Linux下MySQL出现#1036–Table‘‘isreadonly错误解决方法