logo资料库

Autojs官方提取文档.doc

第1页 / 共228页
第2页 / 共228页
第3页 / 共228页
第4页 / 共228页
第5页 / 共228页
第6页 / 共228页
第7页 / 共228页
第8页 / 共228页
资料共228页,剩余部分请下载后查看
Auto.js文档
综述
Q & A
如何定时运行脚本
定时任何如何获取外部参数
如何把图片和脚本一起打包,或者打包多个脚本
如何使打包的应用不显示主界面
Auto.js自带的模块和函数中没有的功能如何实现
关于本文档
API稳定性
如何阅读本文档
input([i, ]text)
images.detectsColor(image, color, x, y[, threshold
App
app.versionCode
app.versionName
app.autojs.versionCode
app.autojs.versionName
app.launchApp(appName)
app.launch(packageName)
app.launchPackage(packageName)
app.getPackageName(appName)
app.getAppName(packageName)
app.openAppSetting(packageName)
app.viewFile(path)
app.editFile(path)
app.uninstall(packageName)
app.openUrl(url)
app.sendEmail(options)
app.startActivity(name)
进阶: 意图Intent
app.intent(options)
app.startActivity(options)
app.sendBroadcast(options)
app.startService(options)
app.sendBroadcast(name)
app.intentToShell(options)
app.parseUri(uri)
app.getUriForFile(path)
全局变量与函数
sleep(n)
currentPackage()
currentActivity()
setClip(text)
getClip()
toast(message)
toastLog(message)
waitForActivity(activity[, period = 200])
waitForPackage(package[, period = 200])
exit()
random(min, max)
random()
requiresApi(api)
requiresAutojsVersion(version)
runtime.requestPermissions(permissions)
runtime.loadJar(path)
runtime.loadDex(path)
context
Console
console.show()
console.hide()
console.clear()
console.log([data][, ...args])
console.verbose([data][, ...args])
console.info([data][, ...args])
console.warn([data][, ...args])
console.error([data][, ...args])
console.assert(value, message)
console.time([label])
console.timeEnd(label)
console.trace([data][, ...args])
console.input(data[, ...args])
console.rawInput(data[, ...args])
console.setSize(w, h)
console.setPosition(x, y)
console.setGlobalLogConfig(config)
print(text)
基于坐标的触摸模拟
setScreenMetrics(width, height)
安卓7.0以上的触摸和手势模拟
click(x, y)
longClick(x, y)
press(x, y, duration)
swipe(x1, y1, x2, y2, duration)
gesture(duration, [x1, y1], [x2, y2], ...)
gestures([delay1, duration1, [x1, y1], [x2, y2], .
RootAutomator
RootAutomator.tap(x, y[, id])
RootAutomator.swipe(x1, x2, y1, y2[, duration, id]
RootAutomator.press(x, y, duration[, id])
RootAutomator.longPress(x, y[\, id])
RootAutomator.touchDown(x, y[, id])
RootAutomator.touchMove(x, y[, id])
RootAutomator.touchUp([id])
使用root权限点击和滑动的简单命令
Tap(x, y)
Swipe(x1, y1, x2, y2, [duration])
Device
device.width
device.height
device.buildId
device.broad
device.brand
device.device
deivce.model
device.product
device.bootloader
device.hardware
device.fingerprint
device.serial
device.sdkInt
device.incremental
device.release
device.baseOS
device.securityPatch
device.codename
device.getIMEI()
device.getAndroidId()
device.getMacAddress()
device.getBrightness()
device.getBrightnessMode()
device.setBrightness(b)
device.setBrightnessMode(mode)
device.getMusicVolume()
device.getNotificationVolume()
device.getAlarmVolume()
device.getMusicMaxVolume()
device.getNotificationMaxVolume()
device.getAlarmMaxVolume()
device.setMusicVolume(volume)
device.setNotificationVolume(volume)
device.setAlarmVolume(volume)
device.getBattery()
device.isCharging()
device.getTotalMem()
device.getAvailMem()
device.isScreenOn()
device.wakeUp()
device.wakeUpIfNeeded()
device.keepScreenOn([timeout])
device.keepScreenDim([timeout])
device.cancelKeepingAwake()
device.vibrate(millis)
device.cancelVibration()
Dialogs
dialogs.alert(title[, content, callback])
dialogs.confirm(title[, content, callback])
dialogs.rawInput(title[, prefill, callback])
dialogs.input(title[, prefill, callback])
dialogs.prompt(title[, prefill, callback])
dialogs.select(title, items, callback)
dialogs.singleChoice(title, items[, index, callbac
dialogs.multiChoice(title, items[, indices, callba
dialogs.build(properties)
Dialog
事件: show
事件: cancel
事件: dismiss
事件: positive
事件: negative
事件: neutral
事件: any
事件: item_select
事件: single_choice
事件: multi_choice
事件: input
事件: input_change
dialog.getProgress()
dialog.getMaxProgress()
dialog.getActionButton(action)
Engines
engines.execScript(name, script[, config])
engines.execScriptFile(path[, config])
engines.execAutoFile(path[, config])
engines.stopAll()
engines.stopAllAndToast()
engines.myEngine()
engines.all()
ScriptExecution
ScriptExecution.getEngine()
ScriptExecution.getConfig()
ScriptEngine
ScriptEngine.forceStop()
ScriptEngine.cwd()
ScriptEngine.getSource()
ScriptEngine.emit(eventName[, ...args])
ScriptConfig
delay
interval
loopTimes
getPath()
Events
events.emitter()
events.observeKey()
events.onKeyDown(keyName, listener)
events.onKeyUp(keyName, listener)
events.onceKeyDown(keyName, listener)
events.onceKeyUp(keyName, listener)
events.removeAllKeyDownListeners(keyName)
events.removeAllKeyUpListeners(keyName)
events.setKeyInterceptionEnabled([key, ]enabled)
events.observeTouch()
events.setTouchEventTimeout(timeout)
events.getTouchEventTimeout()
events.onTouch(listener)
events.removeAllTouchListeners()
事件: 'key'
事件: 'key_down'
事件: 'key_up'
事件: 'exit`
events.observeNotification()
events.observeToast()
事件: 'toast'
事件: 'notification'
Notification
Notification.number
Notification.when
Notification.getPackageName()
Notification.getTitle()
Notification.getText()
Notification.click()
Notification.delete()
KeyEvent
KeyEvent.getAction()
KeyEvent.getKeyCode()
KeyEvent.getEventTime()
KeyEvent.getDownTime()
KeyEvent.keyCodeToString(keyCode)
keys
EventEmitter
EventEmitter.defaultMaxListeners
EventEmitter.addListener(eventName, listener)
EventEmitter.emit(eventName[, ...args])
EventEmitter.eventNames()
EventEmitter.getMaxListeners()
EventEmitter.listenerCount(eventName)
EventEmitter.listeners(eventName)
EventEmitter.on(eventName, listener)
EventEmitter.once(eventName, listener)
EventEmitter.prependListener(eventName, listener)
EventEmitter.prependOnceListener(eventName, listen
EventEmitter.removeAllListeners([eventName])
EventEmitter.removeListener(eventName, listener)
EventEmitter.setMaxListeners(n)
events.broadcast: 脚本间广播
Floaty
floaty.window(layout)
floaty.rawWindow(layout)
floaty.closeAll()
FloatyWindow
window.setAdjustEnabled(enabled)
window.setPosition(x, y)
window.getX()
window.getY()
window.setSize(width, height)
window.getWidht()
window.getHeight()
window.close()
window.exitOnClose()
FloatyRawWindow
window.setTouchable(touchable)
window.setPosition(x, y)
window.getX()
window.getY()
window.setSize(width, height)
window.getWidht()
window.getHeight()
window.close()
window.exitOnClose()
Files
files.isFile(path)
files.isDir(path)
files.isEmptyDir(path)
files.join(parent, child)
files.create(path)
files.createWithDirs(path)
files.exists(path)
files.ensureDir(path)
files.read(path[, encoding = "utf-8"])
files.readBytes(path)
files.write(path, text[, encoding = "utf-8"])
files.writeBytes(path, bytes)
files.append(path, text[, encoding = 'utf-8'])
files.appendBytes(path, text[, encoding = 'utf-8']
files.copy(fromPath, toPath)
files.move(fromPath, toPath)
files.rename(path, newName)
files.renameWithoutExtension(path, newName)
files.getName(path)
files.getNameWithoutExtension(path)
files.getExtension(path)
files.remove(path)
files.removeDir(path)
files.getSdcardPath()
files.cwd()
files.path(relativePath)
files.listDir(path[, filter])
open(path[, mode = "r", encoding = "utf-8", buffer
ReadableTextFile
ReadableTextFile.read()
ReadableTextFile.read(maxCount)
ReadableTextFile.readline()
ReadableTextFile.readlines()
close()
PWritableTextFile
PWritableTextFile.write(text)
PWritableTextFile.writeline(line)
PWritableTextFile.writelines(lines)
PWritableTextFile.flush()
PWritableTextFile.close()
HTTP
http.get(url[, options, callback])
http.post(url, data[, options, callback])
http.postJson(url[, data, options, callback])
http.postMultipart(url, files[, options, callback]
http.request(url[, options, callback])
Response
Response.statusCode
Response.statusMessage
Response.headers
Response.body
Response.request
Response.url
Response.method
colors
colors.toString(color)
colors.red(color)
colors.green(color)
colors.blue(color)
colors.alpha(color)
colors.rgb(red, green, blue)
colors.argb(alpha, red, green, blue)
colors.parseColor(colorStr)
colors.isSimilar(color2, color2[, threshold, algor
colors.equals(color1, color2)
colors.BLACK
colors.DKGRAY
colors.GRAY
colors.LTGRAY
colors.WHITE
colors.RED
colors.GREEN
colors.BLUE
colors.YELLOW
colors.CYAN
colors.MAGENTA
colors.TRANSPARENT
Images
图片处理
images.read(path)
images.load(url)
images.copy(img)
images.save(image, path[, format = "png", quality
images.fromBase64(base64)
images.toBase64(img[, format = "png", quality = 10
images.fromBytes(bytes)
images.toBytes(img[, format = "png", quality = 100
images.clip(img, x, y, w, h)
images.resize(img, size[, interpolation])
images.scale(img, fx, fy[, interpolation])
images.rotate(img, degress[, x, y])
images.concat(img1, image2[, direction])
images.grayscale(img)
image.threshold(img, threshold, maxVal[, type])
images.adaptiveThreshold(img, maxValue, adaptiveMe
images.cvtColor(img, code[, dstCn])
images.inRange(img, lowerBound, upperBound)
images.interval(img, color, interval)
images.blur(img, size[, anchor, type])
images.medianBlur(img, size)
images.gaussianBlur(img, size[, sigmaX, sigmaY, ty
images.matToImage(mat)
找图找色
images.requestScreenCapture([landscape])
images.captureScreen()
images.captureScreen(path)
images.pixel(image, x, y)
images.findColor(image, color, options)
images.findColorInRegion(img, color, x, y[, width,
images.findColorEquals(img, color[, x, y, width, h
images.findMultiColors(img, firstColor, colors[, o
images.detectsColor(image, color, x, y[, threshold
images.findImage(img, template[, options])
images.findImageInRegion(img, template, x, y[, wid
images.matchTemplate(img, template, options)
MatchingResult
matches
points
first()
last()
leftmost()
topmost()
rightmost()
bottommost()
best()
worst()
sortBy(cmp)
Image
Image.getWidth()
Image.getHeight()
Image.saveTo(path)
Image.pixel(x, y)
Point
Point.x
Point.y
Canvas
canvas.drawARGB(a, r, g, b)
canvas.draw
Keys
back()
home()
powerDialog()
notifications()
quickSettings()
recents()
splitScreen()
Home()
Back()
Power()
Menu()
VolumeUp()
VolumeDown()
Camera()
Up()
Down()
Left()
Right()
OK()
Text(text)
KeyCode(code)
附录: KeyCode对照表
Media
media.scanFile(path)
media.playMusic(path[, volume, looping])
media.musicSeekTo(msec)
media.pauseMusic()
media.resumeMusic()
media.stopMusic()
media.isMusicPlaying()
media.getMusicDuration()
media.getMusicCurrentPosition()
module (模块)
基于控件的操作
auto([mode])
auto.waitFor()
auto.setMode(mode)
SimpleActionAutomator
click(text[, i])
click(left, top, bottom, right)
longClick(text[, i]))
scrollUp([i])
scrollDown([i])
setText([i, ]text)
input([i, ]text)
UiSelector
selector()
UiSelector.text(str)
UiSelector.textContains(str)
UiSelector.textStartsWith(prefix)
UiSelector.textEndsWith(suffix)
UiSelector.textMatches(reg)
UiSelector.desc(str)
UiSelector.descContains(str)
UiSelector.descStartsWith(prefix)
UiSelector.descEndsWith(suffix)
UiSelector.descMatches(reg)
UiSelector.id(resId)
UiSelector.idContains(str)
UiSelector.idStartsWith(prefix)
UiSelector.idEndsWith(suffix)
UiSelector.idMatches(reg)
UiSelector.className(str)
UiSelector.classNameContains(str)
UiSelector.classNameStartsWith(prefix)
UiSelector.classNameEndsWith(suffix)
UiSelector.classNameMatches(reg)
UiSelector.packageName(str)
UiSelector.packageNameContains(str)
UiSelector.packageNameStartsWith(prefix)
UiSelector.packageNameEndsWith(suffix)
UiSelector.packageNameMatches(reg)
UiSelector.bounds(left, top, right, buttom)
UiSelector.boundsInside(left, top, right, buttom)
UiSelector.boundsContains(left, top, right, buttom
UiSelector.drawingOrder(order)
UiSelector.clickable([b = true])
UiSelector.longClickable([b = true])
UiSelector.checkable([b = true])
UiSelector.selected([b = true])
UiSelector.enabled([b = true])
UiSelector.scrollable([b = true])
UiSelector.editable([b = true])
UiSelector.multiLine([b = true])
UiSelector.findOne()
UiSelector.findOne(timeout)
UiSelector.findOnce()
UiSelector.findOnce(i)
UiSelector.find()
UiSelector.untilFind()
UiSelector.exists()
UiSelector.waitFor()
UiSelector.filter(f)
UiObject
UiObject.click()
UiObject.longClick()
UiObject.setText(text)
UiObject.copy()
UiObject.cut()
UiObject.paste()
UiObject.setSelection(start, end)
UiObject.scrollForward()
UiObject.scrollBackward()
UiObject.select()
UiObject.collapse()
UiObject.expand()
UiObject.show()
UiObject.scrollUp()
UiObject.scrollDown()
UiObject.scrollLeft()
UiObject.scrollRight()
children()
childCount()
child(i)
parent()
bounds()
boundsInParent()
drawingOrder()
id()
text()
findByText(str)
findOne(selector)
find(selector)
UiCollection
UiCollection.size()
UiCollection.get(i)
UiCollection.each(func)
empty()
nonEmpty()
UiCollection.find(selector)
UiCollection.findOne(selector)
Rect
Rect.left
Rect.right
Rect.top
Rect.bottom
Rect.centerX()
Rect.centerY()
Rect.width()
Rect.height()
Rect.contains(r)
Rect.intersect(r)
UiSelector进阶
Sensors
sensors.register(sensorName[, delay])
sensors.unregister(emitter)
sensors.unregisterAll()
sensors.ignoresUnsupportedSensor
事件: 'unsupported_sensor'
SensorEventEmitter
事件: 'change'
事件: 'accuracy_change'
shell函数
shell(cmd[, root])
Shell
new Shell(root)
Shell.exec(cmd)
Shell.exit()
Shell.exitAndWaitFor()
Shell.setCallback(callback)
附录: shell命令简介
am命令
start [options] intent
startservice [options] intent
force-stop package
kill [options] package
kill-all
broadcast [options] intent
instrument [options] component
dumpheap [options] process file
monitor [options] 启动对崩溃或 ANR 的监控。
screen-compat {on|off} package
display-size [reset|widthxheight]
display-density dpi
to-uri intent
to-intent-uri intent
intent参数的规范
URI component package
应用包名
pm命令
list packages [options] filter
list permission-groups
list permissions [options] group
list instrumentation [options]
list features
list libraries
list users
path package
install [options] path
uninstall [options] package
clear package
enable package_or_component
disable package_or_component
disable-user [options] package_or_component
grant package_name permission
revoke package_name permission
set-install-location location
get-install-location
set-permission-enforced permission [true|false]
trim-caches desired_free_space
create-user user_name
remove-user user_id
get-max-users
其他命令
进行屏幕截图
列表文件
Threads
threads.start(action)
threads.shutDownAll()
threads.currentThread()
threads.disposable()
threads.atomic([initialValue])
threads.lock()
Thread
Thread.interrupt()
Thread.join([timeout])
isAlive()
waitFor()
Thread.setTimeout(callback, delay[, ...args])
Thread.setInterval(callback, delay[, ...args])
Thread.setImmediate(callback[, ...args])
Thread.clearInterval(id)
Thread.clearTimeout(id)
Thread.clearImmediate(id)
线程安全
sync(func)
线程通信
Timers
setInterval(callback, delay[, ...args])
setTimeout(callback, delay[, ...args])
setImmediate(callback[, ...args])
clearInterval(id)
clearTimeout(id)
clearImmediate(id)
用户界面: UI
视图: View
w
h
id
gravity
layout_gravity
margin
marginLeft
marginRight
marginTop
marginBottom
padding
paddingLeft
paddingRight
paddingTop
paddingBottom
bg
alpha
foreground
minHeight
minWidth
visbility
rotation
transformPivotX
transformPivotY
style
文本控件: text
text
textColor
textSize
textStyle
lines
maxLines
typeface
ellipsize
ems
autoLink
按钮控件: button
输入框控件: input
hint
textColorHint
textSizeHint
inputType
password
numeric
phoneNumber
digits
singleLine
图片控件: img
src
tint
scaleType
radius
radiusTopLeft
radiusTopRight
radiusBottomLeft
radiusBottomRight
borderWidth
borderColor
circle
垂直布局: vertical
layout_weight
水平布局: horizontal
layout_weight
线性布局: linear
帧布局: frame
相对布局: relative
勾选框控件: checkbox
选择框控件: radio
选择框布局: radiogroup
开关控件: switch
进度条控件: progressbar
拖动条控件: seekbar
下来菜单控件: spinner
时间选择控件: timepicker
日期选择控件: datepicker
浮动按钮控件: fab
标题栏控件: toolbar
卡片: card
抽屉布局: drawer
列表: list
Tab: tab
ui
ui.layout(xml)
ui.inflate(xml[, parent])
ui.findView(id)
ui.finish()
ui.setContentView(view)
ui.run(callback)
ui.post(callback[, daley])
ui.statusBarColor(color)
ui.showPopupMenu(view, menu)
尺寸的单位: Dimension
Drawables
颜色
Auto.js 文档 综述 Auto.js 使用 JavaScript 作为脚本语言,目前使用 Rhino 1.7.7.2 作为脚本引擎,支持 ES5 与部 分 ES6 特性。  因为 Auto.js 是基于 JavaScript 的,学习 Auto.js 的 API 之前建议先学习 JavaScript 的 基本语法和内置对象,可以使用教程前面的两个 JavaScript 教程链接来学习。  如果您想要使用 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 权限才能执 行。所以对于一般软件脚本(例如批量添加联系人、自动提取短信验证码等等),我们采用基于控 件的模拟操作方式,结合通知事情、按键事情等达成更好的工作流。这些部分的文档参见基于控 件的操作和基于坐标的操作。 其他部分主要包括:              app: 应用。启动应用,卸载应用,使用应用查看、编辑文件、访问网页,发送应用间 广播等。 console: 控制台。记录运行的日志、错误、信息等。 device: 设备。获取设备屏幕宽高、系统版本等信息,控制设备音量、亮度等。 engines: 脚本引擎。用于启动其他脚本。 events: 事件与监听。按键监听,通知监听,触摸监听等。 floaty: 悬浮窗。用于显示自定义的悬浮窗。 files: 文件系统。文件创建、获取信息、读写。 http: HTTP。发送 HTTP 请求,例如 GET, POST 等。 images, colors: 图片和图色处理。截图,剪切图片,找图找色,读取保存图片等。 keys: 按键模拟。比如音量键、Home 键模拟等。 shell: Shell 命令。 threads: 多线程支持。 ui: UI 界面。用于显示自定义的 UI 界面,和用户交互。
除此之外,Auto.js 内置了对 Promise。 Q & A 如何定时运行脚本 点击脚本右边的菜单按钮->更多->定时任务即可定时运行脚本,但是必须保持 Auto.js 后台运行 (自启动白名单、电源管理白名单等)。同时,可以在脚本的开头使用 device.wakeUp()来 唤醒屏幕;但是,Auto.js 没有解锁屏幕的功能,因此难以在有锁屏密码的设备上达到效果。 定时任何如何获取外部参数 如果一个脚本是用 intent"启动"的,比如定时任务中的特定事件(网络状态变化等)触发而启动 的,则可以通过 engines.myEngine().execArgv.intent 获取启动的 intent,从 而获取外部参数。 如何把图片和脚本一起打包,或者打包多个脚本 如果除了单脚本以外还有其他脚本、图片、音乐等资源一起打包,则需要使用项目功能。 点击 Auto.js 的"+"号,选择项目,填写项目名称、包名等信息以后,点击"√"即可新建一个项目。 可以在项目中放多个脚本、模块、资源文件,点击项目工具栏的 apk 打包图标即可打包一个项 目,点击工具栏可以重新配置项目。 例如,主脚本要读取同一文件夹下的图片 1.png,再执行找图,则可以通过 images.read("./1.png")来读取,其中"./1.png"表示同一目录 1.png 图片;ui 中的图 片控件要引用同一文件夹的 2.png 图片则为。Auto.js 内置的函数和模块都支持相对路径,但是,其他情况则需要使用 files.path()函数来把相 对路径转换为绝对路径。 如何使打包的应用不显示主界面 需要使用项目功能。新建项目后,修改项目下的 project.json 文件,增加以下条目: "launchConfig": { "hideLogs": true } 例如: {
"name": "项目名称", "versionName": "1.0.0", "versionCode": 1, "packageName": "org.autojs.example", "main": "main.js", "launchConfig": { "hideLogs": true } } "launchConfig"表示启动配置,"hideLogs"表示隐藏日志。 参见项目与项目配置。 Auto.js 自带的模块和函数中没有的功能如何实现 由于 Auto.js 支持直接调用 Android 的 API,对于 Auto.js 没有内置的函数,可以直接通过修改 Android 代码为 JavaScript 代码实现。例如旋转图片的 Android 代码为: import android.graphics.Bitmap; import android.graphics.Matrix; public static Bitmap rotate(final Bitmap src, final int degrees, final float px, final float py) { if (degrees == 0) return src; Matrix matrix = new Matrix(); matrix.setRotate(degrees, px, py); Bitmap ret = Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true); return ret; } 转换为 JavaScript 的代码后为: importClass(android.graphics.Bitmap); importClass(android.graphics.Matrix); function rotate(src, degrees, px, py){ if (degrees == 0) return src; var matrix = new Matrix(); matrix.setRotate(degrees, px, py);
var ret = Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true); return ret; } 有关调用 Android 和 Java 的 API 的更多信息,参见 Work with Java。 关于本文档 本文档为 Auto.js 的文档,解释了 Auto.js 各个模块的 API 的使用方法、作用和例子。 文档借助 Node.js 的文档构建工具生成,并在 github 上开源 (https://github.com/hyb1996/AutoJs-Docs ),目前由开发者维护。 API 稳定性 由于 Auto.js 处于活跃的更新和开发状态,API 可能随时有变动,我们用 Stability 来标记模块、 函数的稳定性。这些标记包括: Stability: 0 - Deprecated 弃用的函数、模块或特性,在未来的更新中将很快会被移除或更改。应该在脚本 中移除对这些函数的使用,以免后续出现意料之外的问题。 Stability: 1 - Experimental 实验性的函数、模块或特性,在未来的更新中可能会更改或移除。应该谨慎使用 这些函数或模块,或者仅用作临时或试验用途。 Stability: 2 - Stable 稳定的函数、模块或特性,在未来的更新中这些模块已有的函数一般不会被更改, 会保证后向兼容性。 如何阅读本文档 先看一个例子,下面是基于控件的操作模拟的章节中 input 函数的部分说明。 input([i, ]text)  i {number} 表示要输入的为第 i + 1 个输入框  text {string} 要输入的文本
input 表示函数名,括号内的[i, ]text 为函数的参数。下面是参数列表,"number"表示参 数 i 的类型为数值,"string"表示参数 text 的类型为字符串。 例如 input(1, "啦啦啦"),执行这个语句会在屏幕上的第 2 个输入框处输入"啦啦啦"。 方括号[ ]表示参数为可选参数。也就是说,可以省略 i 直接调用 input。例如 input("嘿嘿嘿"),按 照文档,这个语句会在屏幕上所有输入框输入"嘿嘿嘿"。 调用有可选参数的函数时请不要写上方括号。 我们再看第二个例子。图片和图色处理中 detectsColor 函数的部分说明。 images.detectsColor(image, color, x, y[, threshold = 16, algorithm = "diff"])  image {Image} 图片  color {number} | {string} 要检测的颜色  x {number} 要检测的位置横坐标  y {number} 要检测的位置纵坐标  threshold {number} 颜色相似度临界值,默认为 16。取值范围为 0~255。  algorithm {string} 颜色匹配算法,包括: o o "equal": 相等匹配,只有与给定颜色 color 完全相等时才匹配。 "diff": 差值匹配。与给定颜色的 R、G、B 差的绝对值之和小于 threshold 时匹 配。 o o o "rgb": rgb 欧拉距离相似度。与给定颜色 color 的 rgb 欧拉距离小于等于 threshold 时匹配。 "rgb+": 加权 rgb 欧拉距离匹配(LAB Delta E)。 "hs": hs 欧拉距离匹配。hs 为 HSV 空间的色调值。 同样地,[, threshold = 16, algorithm = "rgb"]为可选参数,并且,等于 号=后面的值为参数的默认值。也就是如果不指定该参数,则该参数将会为这个值。 例如 images.detectsColor(captureScreen(), "#112233", 100, 200) 相当于 images.detectsColor(captureScreen(), "#112233", 100, 200, 16, "rgb"), 而 images.detectsColor(captureScreen(), "#112233", 100, 200, 64) 相当于 images.detectsColor(captureScreen(), "#112233", 100, 200, 64, "rgb")。 调用有可选参数及默认值的函数时请不要写上方括号和等于号。
App app 模块提供一系列函数,用于使用其他应用、与其他应用交互。例如发送意图、打开文件、发 送邮件等。 同时提供了方便的进阶函数 startActivity 和 sendBroadcast,用他们可完成 app 模块没有内置的 和其他应用的交互。 app.versionCode  {number} 当前软件版本号,整数值。例如 160, 256 等。 如果在 Auto.js 中运行则为 Auto.js 的版本号;在打包的软件中则为打包软件的版本号。 toastLog(app.versionCode); app.versionName  {string} 当前软件的版本名称,例如"3.0.0 Beta"。 如果在 Auto.js 中运行则为 Auto.js 的版本名称;在打包的软件中则为打包软件的版本名称。 toastLog(app.verionName); app.autojs.versionCode  {number} Auto.js 版本号,整数值。例如 160, 256 等。 app.autojs.versionName  {string} Auto.js 版本名称,例如"3.0.0 Beta"。
app.launchApp(appName)  appName {string} 应用名称 通过应用名称启动应用。如果该名称对应的应用不存在,则返回 false; 否则返回 true。如果该 名称对应多个应用,则只启动其中某一个。 该函数也可以作为全局函数使用。 launchApp("Auto.js"); app.launch(packageName)  packageName {string} 应用包名 通过应用包名启动应用。如果该包名对应的应用不存在,则返回 false;否则返回 true。 该函数也可以作为全局函数使用。 //启动微信 launch("com.tencent.mm"); app.launchPackage(packageName)  packageName {string} 应用包名 相当于 app.launch(packageName)。 app.getPackageName(appName)  appName {string} 应用名称 获取应用名称对应的已安装的应用的包名。如果该找不到该应用,返回 null;如果该名称对应多 个应用,则只返回其中某一个的包名。 该函数也可以作为全局函数使用。 var name = getPackageName("QQ"); //返回 "com.tencent.mobileqq"
app.getAppName(packageName)  packageName {string} 应用包名 获取应用包名对应的已安装的应用的名称。如果该找不到该应用,返回 null。 该函数也可以作为全局函数使用。 var name = getAppName("com.tencent.mobileqq"); //返回"QQ" app.openAppSetting(packageName)  packageName {string} 应用包名 打开应用的详情页(设置页)。如果找不到该应用,返回 false; 否则返回 true。 该函数也可以作为全局函数使用。 app.viewFile(path)  path {string} 文件路径 用其他应用查看文件。文件不存在的情况由查看文件的应用处理。 如果找不出可以查看该文件的应用,则抛出 ActivityNotException。 //查看文本文件 app.viewFile("/sdcard/1.txt"); app.editFile(path)  path {string} 文件路径 用其他应用编辑文件。文件不存在的情况由编辑文件的应用处理。 如果找不出可以编辑该文件的应用,则抛出 ActivityNotException。 //编辑文本文件 app.editFile("/sdcard/1.txt/);
分享到:
收藏