API 速查
约 2036 字大约 7 分钟
API 速查
这一页是首版速查表,方便你不来回翻页就能知道“有这个能力吗,大概叫什么”。
如果你想直接翻 ScriptX 应用里那套内置手册示例,现在已经单独整理成了一页:内置手册全量示例。
全局函数
| 名称 | 作用 |
|---|---|
log / print | 输出日志 |
toast / toastLog | Toast 与日志联动 |
sleep | 阻塞当前脚本 |
pausePoint / isPaused | 运行时暂停检查与暂停状态读取 |
setClip / getClip | 操作剪贴板 |
exit | 中断脚本 |
random | 生成随机数 |
printStackTrace | 输出当前堆栈 |
setTimeout / clearTimeout | 单次定时 |
setInterval / clearInterval | 周期定时 |
setImmediate / clearImmediate | 当前线程上的即时调度 |
Task | 一次性任务包装,当前本质上等价于 setTimeout |
sync | 把函数包装成共享锁保护的同步函数 |
shell | 执行 Shell |
getAppLanguage | 读取当前语言 |
currentPackage / currentActivity | 读取无障碍监测到的前台包名与前台 Activity 类名 |
selector / text* / desc* / id* / className* / packageName* | 选择器构造、文本筛选、id 筛选、类名筛选、包名筛选 |
click / longClick / press / swipe | 基于无障碍手势的坐标点击、长按、按压、滑动;最后一个参数还可传 displayId 或 vdisplay session |
Tap / Swipe | 基于特权 input 命令的坐标点击与滑动;可直接指向指定 displayId 或 vdisplay session |
back / home / powerDialog / notifications / quickSettings / recents / splitScreen | 系统动作优先的按键快捷函数,其中 back / home 已支持目标 displayId / vdisplay session |
Home / Back / Power / Menu / VolumeUp / VolumeDown / Camera / Up / Down / Left / Right / OK / Text / KeyCode | 直接发 KeyEvent、文本输入和按键码派发;多数接口已支持目标 displayId / vdisplay session |
requestScreenCapture / requestScreenCaptureAsync / captureScreen | 图像模块挂出来的全局截图快捷函数;captureScreen(...) 现在也能直接截指定 vdisplay |
findColor / findColorInRegion / findColorEquals / findMultiColors / findImage / findImageInRegion | 图像模块挂出来的全局找色 / 找图快捷函数 |
getField / setField | 实例字段读写,字段名支持先解包再转字符串 |
getStaticField / setStaticField | 静态字段读写,字段名支持先解包再转字符串 |
printFields | 打印对象字段 |
findClass | 查找类,或把已拿到的 Class 统一归一化返回 |
callStaticMethod / callMethod / invoke | 调用方法,方法名支持先解包再转字符串 |
createProxy | 动态创建 Java 接口代理,支持函数模式或按方法名分发的 callbacks 对象 |
new / newArray / ByteArray | 构造对象与数组;字符串类名时 new 支持第二参数显式传 ClassLoader |
hook / hookAll / hookctor / hookcotr / replace | Hook 系列,字符串入口会先解包再查找 |
require | 加载项目模块 |
loadDex | 加载外部 Dex |
openDexKit / openDexKitByClassLoader | 打开 DexKit |
imports / importClass | 导入 Java 类 |
getProjectDir | 取项目目录 |
injectActivity | 注入 Activity 上下文 |
showGlobalDialog / showHostDialog / confirm | 宿主对话框 |
全局对象
| 对象 | 关键能力 |
|---|---|
console | log / info / warn / error / 悬浮日志窗口控制 / 截图时可见性切换 |
auto | 无障碍服务就绪、窗口过滤、搜索模式、窗口 root 与窗口列表、无障碍截图、布局导出 |
automator | 自动化对象补充入口,当前主要是无障碍截图 |
app | 目标包版本 app.version*、ScriptX 版本 app.jsxhook.*、启动 Activity、发送广播、打开 URL、查已安装应用 |
power_manager | 电池优化白名单查询与拉起系统授权页 |
keys | 系统动作、KeyEvent 派发、文本输入与 KeyCode 解析 |
dialogs | alert / confirm / input / build 与对话框实例监听 |
vdisplay / $vdisplay | 创建虚拟屏、列举 session、预览、点击、输入、截图,并把其他 API 指向指定显示器 |
util | format / inspect / extend / 类型判断 / Java 桥接 |
settings / $settings | ScriptX 运行时开关读取与修改 |
images | 读图、存图、MediaProjection 截图、找色、找图、模板匹配、特征点与圆检测 |
canvas | 位图画布、Paint / Path / Rect / Matrix 包装与绘制变换 |
colors | 颜色解析、通道拆分、颜色常量与颜色整数/字符串互转 |
ui | XML 布局、控件代理、视图事件、列表、ViewPager、画布视图 |
floaty | 系统悬浮窗、无障碍悬浮窗、窗口位置尺寸、触摸、焦点、调节模式与权限检查 |
threads | 工作线程、线程内定时器、锁、原子计数与跨线程传值 |
events | 自定义事件、同包广播、按键、Toast、通知、触摸、剪贴板与手势监听 |
sensors | 传感器获取、注册、注销、延迟枚举与 change 事件 |
media | 共享音频播放、独立 MediaPlayer、媒体库扫描 |
engines | 多脚本引擎、执行句柄、引擎广播与运行中引擎管理 |
http | GET / POST / POST JSON / 超时配置 |
httpServer | 启停 HTTP 服务、注册路由 |
mcpServer | 注册 Tool / Resource / Prompt |
crypto / $crypto / $base64 | 编码、摘要、加解密、密钥管理与快捷别名 |
files | 工作区文件读写 |
storages | 持久化键值存储,默认落到当前运行时上下文的本地存储 |
device | 设备信息、亮度、音量、电量、唤醒、震动 |
plugins | 插件加载与卸载 |
imgui | 调试面板与控件 |
__nonHostRun | 当前是否处于无宿主运行模式 |
app 这一组里最容易记混的是:
app.versionCode/app.versionName看当前脚本绑定的目标包版本app.jsxhook.versionCode/app.jsxhook.versionName看 ScriptX 自己版本,字段名仍沿用历史命名
自动化相关的正文页已经拆开:
- threads 线程与同步
- events 事件与观察器
- automator 自动化操作-模块
- vdisplay 虚拟屏
- coordinates 自动化操作-坐标
- keys 按键模拟
- dialogs 对话框
- console 控制台
- util 工具模块
- settings 设置
- module 模块
- images 图像与截图
- canvas 画布
- colors 颜色模块
- ui 用户界面
- floaty 悬浮窗
- sensors 传感器
- media 多媒体
- engines 脚本引擎
- power_manager 电源管理
DexKit 入口
这一页只把 DexKit 入口先摆出来,详细参数、枚举值、匹配器、结果对象和示例都已经单独展开到 API 正文页了:
最常用的 4 个入口先记住:
| 名称 | 作用 |
|---|---|
openDexKit(apkPath?) | 按 APK 路径打开 DexKit;不传参数时优先用当前应用 sourceDir |
openDexKitByClassLoader(useMemoryDexFile = false) | 按当前 lpparam.classLoader 打开 DexKit |
DexFinder.INSTANCE.create(...) / DexFinder.getDexKitBridge() | 通过 DexFinder 桥接拿到 DexKitBridge |
DexKitBridge.create(...) | 更底层的直接入口,可自己传 apkPath、loader,或更进阶的 dex 字节数组 |
源码映射
| 能力 | 主要源码 |
|---|---|
| 运行时注册 | hook/javascript/JavaScriptBridge.kt |
| 自动化模块 / 选择器 / 前台应用感知 | hook/javascript/ScriptAutomatorApi.kt |
| 虚拟屏模块 / 跨显示器输入 / target 解析 | hook/javascript/ScriptVDisplayApi.kt、core/display/ScriptVirtualDisplayManager.kt、hook/javascript/ScriptVDisplayTargetResolver.kt |
| 线程模块 / 同步与线程调度 | hook/javascript/ScriptThreadsApi.kt |
| 事件模块 / 观察器 / 广播 | hook/javascript/ScriptEventsApi.kt |
| 按键模块 / 系统动作 / KeyCode | hook/javascript/ScriptKeysApi.kt |
| 对话框模块 / 可编排弹窗 | hook/javascript/ScriptDialogsApi.kt |
| 控制台对象与 util 工具 | hook/javascript/JavaScriptBridge.kt |
| 图像模块 / 屏幕截图 / 找色找图 | hook/javascript/ScriptImagesApi.kt |
| 画布模块 / 位图绘制 | hook/javascript/ScriptCanvasApi.kt |
| 颜色模块 | hook/javascript/ScriptColorsApi.kt |
| UI 模块 / XML 布局 / 控件代理 | hook/javascript/ScriptUiApi.kt |
| 悬浮窗模块 | hook/javascript/ScriptFloatyApi.kt |
| 传感器模块 | hook/javascript/ScriptSensorsApi.kt |
| 多媒体模块 | hook/javascript/ScriptMediaApi.kt |
| 脚本引擎模块 | hook/javascript/ScriptEnginesApi.kt |
| 电源管理模块 | hook/javascript/ScriptPowerManagerApi.kt |
| 加密与编码 | hook/javascript/JavaScriptCrypto.kt |
| Rhino 运行时 | hook/javascript/JavaScriptRuntime.kt |
| 文件 API | hook/javascript/ScriptFilesApi.kt |
| 存储 API | hook/javascript/ScriptStoragesApi.kt |
| 设备 API | hook/javascript/ScriptDeviceApi.kt |
| 插件 API | hook/javascript/ScriptPluginsApi.kt |
| ImGui API | hook/javascript/ScriptImGuiApi.kt |
| MCP Server | hook/javascript/McpServerBridge.kt |
| 项目系统 | core/project/* |
| DexKit / 分析 | core/dexkit/*、core/apkanalysis/* |
内置手册全量示例
- 全量入口:内置手册全量示例
- 这页已经把应用内置手册里的 75 条示例按当前文档栏目重新归类,并补了少量衔接示例
- 当你想先找“现成代码片段”而不是先读概念说明时,优先从这页开始会更快
继续补文档时的建议
如果你还想把这套文档继续往上抬一个台阶,最省力的做法是:
- 从
JavaScriptBridge.kt里继续补全每个全局函数的参数约定和边界条件。 - 把
manual-full里已经归类好的示例,继续分批并回对应 API 正文页。 - 给
modules/*页面补上“相关类 / 数据流 / 入口 UI / 对应手册示例”。
