乐于分享
好东西不私藏

【iOS逆向与安全】iOS MCP 获取 UI 节点的实现原理:为什么它比传统 WDA 更适合 AI 自动化?

【iOS逆向与安全】iOS MCP 获取 UI 节点的实现原理:为什么它比传统 WDA 更适合 AI 自动化?

如果你做过 iOS 自动化,大概率绕不开 WebDriverAgent,也就是大家熟悉的 WDA。

WDA 很经典,它把 XCTest 的能力封装成 WebDriver 接口,让 Appium 等工具可以操作 iPhone。

但到了 AI Agent 时代,需求发生了变化。

以前自动化测试关心的是:

我能不能通过 XPath / class chain 找到某个元素?

现在 AI 自动化更关心的是:

AI 能不能像人一样快速看懂当前屏幕,知道哪里可以点,然后直接执行操作?

这正是 iOS MCP 在 UI 节点获取方案上重新设计的原因。


一、先看效果:复杂 App 页面也能精准框出可操作节点

下面这张图,是 iOS MCP 对同花顺 App 多个页面获取 UI 节点后的效果。

左边是原始页面,右边是 iOS MCP 获取到的节点覆盖效果。

从图中可以看到,在「首页、行情、自选、交易、资讯、理财」等多个复杂页面中,iOS MCP 都能识别出大量可操作 UI 节点,并用矩形框标出节点范围,同时给出可点击坐标。

这类金融 App 页面非常复杂:

  • 顶部 Tab 多;
  • 内容区域密集;
  • 列表数据多;
  • 页面中存在大量文字、按钮、图标、卡片;
  • 部分区域不是标准 UIKit 控件;
  • 底部还有固定导航栏。

传统自动化框架面对这种页面,经常会返回一棵非常大的 XML 树,AI 需要再从复杂层级里自己推理。

而 iOS MCP 返回的是更直接的结果:

{"text""立即开户","rect": {"x"243,"y"218,"width"58,"height"36  },"tap": {"x"272,"y"236  },"clickable"true}

也就是说,AI 不只是知道页面上有一个「立即开户」,还直接知道:

它在哪里,以及应该点哪个坐标。

这就是 iOS MCP UI 节点方案最核心的价值:它不是给 AI 一棵树,而是给 AI 一张可以直接执行的屏幕操作地图。


二、核心思路:不是遍历整棵树,而是生成 AI 可执行的操作地图

iOS MCP 中获取 UI 节点的工具是:

get_ui_elements

入口位于:

MCPServer.m

核心调用链大致如下:

MCPServer.m  -> executeGetUIElementsAccessibilityManager.m  -> getCompactUIElementsWithMaxElementsMCPAXRemoteContextResolver.m  -> frontmostContextMCPAXAttributeBridge.m  -> AXRuntime direct bridgeMCPAXNodeSource.m  -> compactElementsForPid

传统方案一般是:

拿到完整 UI 树 -> 递归遍历 children -> 转成 XML / JSON -> 再由上层查询

而 iOS MCP 的思路是:

先定位当前前台 App -> 直接连接 AXRuntime -> 获取系统级候选节点集合 -> 合并可见节点、语义节点、可聚焦节点、hit-test 节点 -> 输出 compact 可点击列表

它不是先生成一棵巨大的树,而是直接获取 AI 最需要的东西:

当前屏幕有哪些可见元素?哪些元素可点击?它们的文本是什么?它们的位置在哪里?推荐点击坐标是多少?

三、实现流程一:精准定位前台 App

在获取 UI 节点之前,iOS MCP 会先解析当前前台 App 的上下文。

核心类是:

MCPAXRemoteContextResolver

它会尝试从多个系统来源获取信息:

AXFrontBoardFocusedAppsAXFrontBoardFocusedAppProcessAXFrontBoardVisibleAppProcessesAXFrontBoardFocusedAppPIDSpringBoard _accessibilityFrontMostApplicationWorkspace ScenesCADisplay.mainDisplay.displayId

最终得到:

pidbundleIdprocessNamesceneIdentifiercontextIddisplayId

这一步非常关键。

因为在 iOS 上,一个 App 不只是一个进程,它还和 scene、window context、display id、Accessibility runtime 状态有关。

WDA 更多是站在 XCTest 的视角看 App;iOS MCP 则是站在 SpringBoard 和 AXRuntime 的视角看整个系统当前状态。


四、实现流程二:直接绑定 AXRuntime

iOS MCP 的底层桥接在:

MCPAXAttributeBridge.m

它会动态绑定 AXRuntime 相关符号,例如:

AXUIElementCreateApplicationAXUIElementCreateSystemWideAXUIElementCopyAttributeValueAXUIElementCopyMultipleAttributeValuesAXUIElementCopyParameterizedAttributeValueAXUIElementCopyElementAtPositionAXUIElementCopyElementWithParametersAXUIElementCopyElementUsingContextIdAtPositionAXUIElementGetPid_AXAddAssociatedPid__AXSetRequestingClient_AXOverrideRequestingClientType

也就是说,iOS MCP 不是通过 XCTest 间接获取 UI,而是直接进入系统 AXRuntime。

它还会执行:

ensureAssociationWithRemotePid(pid)

这一步会把当前进程和目标 App 的 pid 做 AX 关联,让当前服务具备读取目标 App 无障碍节点的能力。

这也是 iOS MCP 能够在 SpringBoard 侧直接获取前台 App UI 节点的关键。


五、实现流程三:直接读取系统候选节点集合

真正厉害的地方在:

MCPAXNodeSource.m

核心方法是:

compactElementsForPid

iOS MCP 会创建目标 App 的 AX 元素:

AXUIElementCreateApplication(pid)

然后读取一组系统内部的 numeric AX attributes:

3015 visibleElements3025 elementsWithSemanticContext3022 explorerElements3029 nativeFocusableElements3031 siriContentNativeFocusableElements3032 siriContentElementsWithSemanticContext5001 children

这些属性非常关键。

它们不是普通自动化框架常用的公开 UI 树属性,而是更接近系统无障碍运行时内部的候选节点集合。

可以理解为:

iOS MCP 直接问系统:当前屏幕上有哪些元素是可见的、可语义理解的、可聚焦的、适合无障碍操作的?

这比单纯递归 children 更适合 AI。


六、实现流程四:多源融合,生成 AI 友好的节点

iOS MCP 不只读取一个来源,而是融合多类数据。

6.1 Numeric AX attributes

例如:

labelframevaluewindowContextIdwindowDisplayId

6.2 XC attributes

例如:

framelabelvaluevisibleFrameisVisiblewindowContextIdwindowDisplayId

6.3 Direct private attributes

例如:

centerPointfocusableFrameForZoomuserInputLabelsvisibleFrame

最后统一归一化成 compact element:

textrectvisible_recttapclickableindexidpath

这就是为什么效果图中可以看到大量红框精准覆盖在真实 UI 上。

iOS MCP 不只是拿到了文本,还拿到了:

节点范围可见范围推荐点击点是否可点击节点索引

这对 AI 来说非常友好。


七、实现流程五:采样 hit-test 补洞

iOS MCP 还有一个很实用的机制:

compact_numeric_candidate_arrays_sampled_hits

也就是:

候选节点数组 + 屏幕采样 hit-test 合并。

它会在屏幕上选择多个探测点,然后调用底层 hit-test:

AXUIElementCopyElementWithParametersAXUIElementCopyElementAtPositionWithParamsAXUIElementCopyElementAtPosition

如果候选数组漏掉了某些节点,采样 hit-test 可能把它补回来。

所以 iOS MCP 的节点获取不是单点依赖,而是:

App 级候选节点+ Window 级候选节点+ 采样 hit-test 节点+ 多源属性融合+ fingerprint 去重+ compact 输出

这也是它在复杂页面中表现稳定的原因。

本地抓到的同花顺首页结果中,可以看到类似信息:

{"source""direct_ax_compact_attribute_crawl","direct_ax_strategy""compact_numeric_candidate_arrays_sampled_hits","bundleId""cn.com.10jqka.IHexin","root_count"202,"serialized_candidate_count"61,"element_count"61}

返回的节点里直接包含:

用户861994940消息中心搜索查看所需材料立即开户同花顺热榜学投资模拟炒股

每个节点都带有可点击坐标。

对 AI Agent 来说,这就是“可执行的屏幕理解”。


八、对比 WDA:XCTest Snapshot 树 vs AXRuntime 操作地图

WDA 的 /source 实现在:

WebDriverAgentLib/Commands/FBDebugCommands.m

核心逻辑是:

FBApplication *application = request.session.application ?: [FBApplication fb_activeApplication];[application fb_waitUntilSnapshotIsStable];result = [FBXPath xmlStringWithSnapshot:application.fb_lastSnapshot];

JSON 树则来自:

XCUIApplication+FBHelpers.m

核心逻辑是:

return [self.class dictionaryForElement:self.fb_lastSnapshot];

而 dictionaryForElement 本质上是递归遍历:

snapshot.children

然后输出:

typerawIdentifiernamevaluelabelrectframeisEnabledisVisiblechildren

所以 WDA 的路径可以概括为:

XCTest -> XCUIApplication -> XCElementSnapshot -> snapshot.children -> XML / JSON -> XPath 查询

而 iOS MCP 的路径是:

SpringBoard / MCP Server -> frontmost pid/context/display -> AXRuntime direct bridge -> numeric candidate arrays -> sampled hit-test -> compact actionable elements

九、为什么 iOS MCP 更适合 AI Agent?

9.1 WDA 输出的是测试树,iOS MCP 输出的是操作地图

WDA 的 XML / JSON 很适合测试脚本。

但 AI 更需要的是:

{"text""搜索","tap": {"x"145,"y"42  },"clickable"true}

AI 拿到之后可以直接决策:

我要点击搜索框,坐标是 145,42。

9.2 WDA 依赖 XCTest snapshot,iOS MCP 直连 AXRuntime

WDA 的优势是 WebDriver 生态。

但 iOS MCP 更靠近系统无障碍运行时,能拿到更多系统内部候选节点,例如:

visibleElementselementsWithSemanticContextnativeFocusableElementssiriContentElementsWithSemanticContext

这让 iOS MCP 更像是在复用系统给 VoiceOver / Siri 使用的语义视图。

9.3 iOS MCP 有 contextId / displayId 感知

iOS MCP 不只知道 App 的 pid,还知道:

sceneIdentifiercontextIddisplayIdAXRuntime 状态Accessibility registrar 状态解析路径 trace

这对复杂场景非常重要。

9.4 iOS MCP 返回结果更短、更直接、更适合模型

传统 XML 很大,层级深,噪声多。

iOS MCP compact UI 节点更像这样:

index: 7text: 立即开户rect: 243,218,58,36tap: 272,236clickable: true

这对大模型来说更容易理解,也更容易执行。


十、总结:WDA 是测试时代经典,iOS MCP 是 AI Agent 时代控制层

WDA 是 iOS 自动化测试时代的经典方案。

它的核心是:

XCTest snapshot + XML/JSON tree + XPath 查询

而 iOS MCP 面向的是 AI Agent 时代。

它的核心是:

AXRuntime 直连+ 系统候选节点+ 多源属性融合+ hit-test 补洞+ compact 可点击列表+ MCP 工具协议

如果说 WDA 提供的是:

给测试脚本看的 UI 树

那么 iOS MCP 提供的是:

给 AI Agent 用的屏幕行动地图

它不只是告诉 AI 屏幕上有什么,还直接告诉 AI:

这个节点叫什么?它在哪里?是否可见?是否可点?应该点哪个坐标?属于哪个 App / pid / context / display?

这就是 iOS MCP UI 节点获取方案真正厉害的地方。

在 AI 自动化时代,UI 节点不应该只是 XML。

它应该是模型可以直接理解、直接决策、直接执行的操作地图。

而这,正是 iOS MCP 正在做的事情。


十一、开源地址

iOS MCP 已开源,欢迎 Star、Issue、PR,也欢迎一起交流 iOS 设备自动化、AI Agent 控机、AXRuntime、越狱环境下的系统能力调用等相关技术。

项目地址:

https://github.com/witchan/ios-mcp

GitHub:

https://github.com/witchan/ios-mcp


十二、社区交流

iOS MCP 已经聚集了不少开发者和用户持续交流,目前已建立多个微信交流群。

微信交流群(6群开放中)
公众号
1群:已满2群:已满3群:已满4群:已满5群:已满6群:开放中
移动端Android和iOS开发技术分享

6 群二维码如已过期,请添加微信 witchan028 或关注公众号 移动端Android和iOS开发技术分享 获取最新入群方式。

欢迎添加微信或关注公众号,获取最新动态与入群方式。

  • 微信:witchan028
  • 邮箱:witchan028@126.com
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-29 17:45:09 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/568502.html
  2. 运行时间 : 0.308161s [ 吞吐率:3.25req/s ] 内存消耗:4,650.29kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=11cc4516a1fadb1aeceb24a1799f677e
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001087s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001847s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.006749s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.016594s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001614s ]
  6. SELECT * FROM `set` [ RunTime:0.006246s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001990s ]
  8. SELECT * FROM `article` WHERE `id` = 568502 LIMIT 1 [ RunTime:0.030234s ]
  9. UPDATE `article` SET `lasttime` = 1777455910 WHERE `id` = 568502 [ RunTime:0.002365s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000719s ]
  11. SELECT * FROM `article` WHERE `id` < 568502 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001319s ]
  12. SELECT * FROM `article` WHERE `id` > 568502 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.004795s ]
  13. SELECT * FROM `article` WHERE `id` < 568502 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002112s ]
  14. SELECT * FROM `article` WHERE `id` < 568502 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.014181s ]
  15. SELECT * FROM `article` WHERE `id` < 568502 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.009976s ]
0.313034s