当前位置:首页>安卓APP>7.5 小时搞定安卓/iOS/鸿蒙三端!AI + Kuikly 「多模态聊天 App」 实战

7.5 小时搞定安卓/iOS/鸿蒙三端!AI + Kuikly 「多模态聊天 App」 实战

  • 2026-07-02 16:29:35
7.5 小时搞定安卓/iOS/鸿蒙三端!AI + Kuikly 「多模态聊天 App」 实战

Kuikly 是腾讯开源的高性能跨端框架,基于 Kotlin Multiplatform 技术,覆盖 Android、iOS、HarmonyOS、H5、微信小程序、Mac 六大平台,支撑业务日活用户超5亿。当 Kuikly 搭配真正懂它的 AI,开发会怎样——零手写代码,仅凭自然语言,7.5 小时交付一套支持 Android、iOS、鸿蒙三端的 AI 聊天 App。看 AI 如何调研组件、扩展原生模块、自行定位 Bug,感受为什么「AI + Kuikly」是当下客户端开发效率最高的组合之一。

用 28 轮对话、740 字自然语言,生成约 3500 行代码,完成一套三端可运行的多模态 AI 聊天 App。全程零手写,不看代码,1 天交付。

放在传统开发里,同样的功能 iOS、Android、鸿蒙各写一遍,要 30 人天;就算用 Kuikly 手写,也得 7.5 人天。这次用 AI 辅助,实际只花了 7.5 小时。最终交付的 App 支持流式 Markdown、拍照识图、相册选取、SSE 长连接、本地会话管理,一套代码即可覆盖 Android、iOS、鸿蒙三端。

这不是“Vibe Coding”的玄学叙事,而是一次“AI + Kuikly 跨端框架”的实弹演习。Skills 和 Rules 让 AI 始终保持在正确的技术上下文中,组件库开箱即用、三端模板一键生成,这套基础设施支撑起了“AI + Kuikly”的协同效率。之前搜狗输入法用 Spec Coding 把新页面开发从 3 天压到 1 天QQ 音乐用 AI 智能转码实现 90%+ 代码采用率 ,效率红利正在被验证。

说到底,这次实验就想回答一个问题:纯靠对话,能把事情做到什么程度?一天之后,我有了答案。

下面是这一天的真实日记。

AI Coding 全过程

先把这一天的节奏拉成一条时间线:

09:00 - 09:10|环境准备:先把 AI 开发环境搭起来

动手写代码前,得先把 AI 的“工作环境”备齐。

先跟着KuiklyUI GitHub 仓库https://github.com/Tencent-TDS/KuiklyUI 的指引装好 IDE 和 Kuikly 插件。我本地早就配好了,直接跳过这一步,开始创建模板工程。按向导填写信息、一路点下一步,Android、iOS、鸿蒙三端的工程文件就准备好了。

觉得 Kuikly 有意思的话,欢迎给 KuiklyUI GitHub 仓库 https://github.com/Tencent-TDS/KuiklyUI点个 ⭐️ 关注,以后好找。

接着,按照官网 AI编程 https://kuikly.tds.qq.com/AI/的指引在工程里安装 Kuikly AI 的 Skills 和 Rules。

npx skills add Tencent-TDS/KuiklyUI-AI/skills

这一步很关键。Kuikly DSL 相对专有,通用大模型的训练语料覆盖并不充分,而 Skills 和 Rules 能把框架知识喂给模型,让 AI 像一个熟悉 Kuikly 的开发者一样工作。

到这里,Kuikly 的 AI 开发环境就算准备好了,然后我切到 AI Coding 的主场:CodeBuddy。

09:10 - 10:20|需求分析与方案设计:先确定能复用什么,再决定自己写什么

这是一个完整 App 而非单个页面,所以我没让它直接开写,而是先用 CodeBuddy superpowers 插件里的 brainstorming 技能把需求拆清楚。

给它的第一条指令:

/brainstorming 使用 Kuikly 实现一个多模态 AI 聊天 App,一码三端,支持 Android、iOS、鸿蒙。核心能力包括:发送文本/图片消息、拍照发图、相册选图、AI 流式回复、Markdown 渲染、打开消息中的网址、本地会话管理、历史会话恢复。优先使用 Kuikly 官方和社区已有组件。

这条 Prompt 写得比较完整,关键是两点:明确“一码三端”,不是只跑 Android 的 Demo;强调“优先使用已有组件”,避免它上来就造轮子。

组件查询

AI 随即调用查询第三方组件的技能,筛出一份匹配清单(KuiklyChatUIKuiklyMarkdownKuiklyAlbumKuiklyCameraKuiklySQLiteKuiklyWebviewKuiklyToast),接着并行访问它们的 GitHub 信息调研用法与平台支持。

有个细节挺有意思:AI 本来在清单里选了 KuiklyMarkdown 来做 Markdown 渲染,但调研后发现 KuiklyChatUI 里的 AiMessageText 已覆盖 AI 消息的 Markdown 渲染场景,于是不再单独引入 KuiklyMarkdown,最终落地 6 个组件。这就是 Skills 和 Rules 的第一个收益——AI 开始知道什么时候不该写

确定组件清单后,AI 还标出两个需要用 Kuikly 的 Module 机制扩展的能力缺口:

  1. 现有 Network 不支持 SSE 长连接,需补一个 SSEModule

  2. 图片发给多模态模型前需统一压缩和 base64 编码,需补一个 ImageModule

过去用 AI 写代码,最怕它把所有问题都包装成"没问题,我来实现",然后一路写到编译报错。这次 AI 则表现得像一个资深的 Kuikly 开发者,我知道这是 Kuikly AI 的 Skills 和 Rules 的功劳。它们很好地充当了 AI 的缰绳,哪些用组件、哪些自研、用何种方式组织代码,都被框得很清楚。

方案基本确定

  • 聊天主体用 KuiklyChatUI

  • Markdown 能力复用 AiMessageText

  • 拍照和相册分别用 KuiklyCamera、KuiklyAlbum

  • 会话历史用 KuiklySQLite

  • 外链打开用 KuiklyWebview

  • 轻提示用 KuiklyToast

  • SSE 和图片压缩编码用自研 Module 补齐

AI 接着推演了架构、数据结构和交互设计,整体合理,我基本没打断,很快就拿到了第一版开发  plan。

10:20 - 11:10|编码实现:AI 是怎么把代码写出来的

plan 确认后,我基本就让 AI 自己往下跑了,中途没有太多打断。

值得说一下的是它在不同环节调用的技能,这也是这次"AI 真的懂 Kuikly"的关键。

补两个框架没覆盖的能力时,它用的是 [skill:kuikly-expand-api]——也就是 Kuikly 官方提供的"扩展原生 API / 自定义 Module"技能。SSEModule 和 ImageModule 这两个跨端 Module 都是靠它生成的:从 commonMain 的接口定义,到三端 native 侧的桥接实现,技能里都有明确的规范可循,AI 不用凭记忆去猜 Kuikly 的 Module 写法。

实现聊天主页面和历史会话列表页面时,它用的是 [skill:kuikly-ui-framework]  [skill:kuikly-reactive-observer]。前者负责 Kuikly DSL 的页面结构和组件用法,后者负责响应式状态——消息列表、流式回复这些需要随状态变化自动重渲染的地方,都是靠 observable 把数据和 UI 绑起来的。

整个过程给我的感觉是:AI 不是在"硬写一种它半懂的 DSL",而是每到一个环节先加载对应的 Kuikly 技能,再按规范动手。该用哪个组件、该扩展哪个 API、状态怎么绑,基本没走偏。

11:10 - 12:30|集成自测:上真机测试,发现一个图片加载缺陷

plan 执行完,我先在 Android 真机上跑。

一次编译就成功了。

App 起来,界面干净,输入框、消息列表、发送按钮都在。我发出了第一条文字消息,AI 流式回复正常滚了出来,Markdown 也渲染对了。

对于一个一码三端、还自带 SSE 长连接和多模态结构的工程来说,第一次真机运行就直接跑通文字链路,这个结果比我预期要好。

文字链路没问题,我接着试图片消息。

图片链路出问题:让 AI 自己定位

点开相册,选图页面正常打开了——缩略图宫格布局也铺出来了,但每一格的缩略图都加载不出来,整片宫格只有一个个空白格子,看不到图,自然也没法选。

我没有自己去翻代码,直接把现象和文件甩给 CodeBuddy,让它自己查:

@ImagePickerPage.kt 的图片加载不出来,请添加日志,用adb自行分析原因

AI 按我说的先加日志、再用 logcat 抓日志,用 adb 注入操作复现,顺着日志一步步缩小范围。

很快它就定位到了根因:

相册组件给每张缩略图的图片地址是 content provider 格式content://...),而模板工程默认实现的 ImageAdapter 只处理了 base64、http、assets、file 几种来源,没有认 content:// 这种 URI,所以每张缩略图都解码失败、显示空白。

定位清楚后,它在 ImageAdapter 加上了对 content URI 的识别,重新运行,相册缩略图全部正常显示,选图、发送也都通了。模型能正确识别画面主体并给出对应回答,说明多模态理解链路也跑通了。

这个问题的链路其实很长:从 KuiklyAlbum 组件取出缩略图信息,到跨端的 UI 组织,再到原生图片控件上屏,每一步都可能是原因。但因为有 Kuikly AI 的知识库托底,AI 省去了研究框架源码,我只给出问题现象、相关文件和分析要求,它就能自己加日志、用 logcat + adb 把根因一路查到 ImageAdapter 这一层,就这样轻描淡写地把问题解决了。它再一次扮演了一个资深 Kuikly 开发的角色。

14:00 - 17:30|迭代优化:把"能用"磨成"好用"

文字和图片链路都通了,剩下的就是细节打磨。产品体验的反复推敲,在原生开发里最磨人,也最容易出现平台不一致。而跨端框架的优势正在于此:一次修改,三端同步改好;配合 Kuikly AI,很多修改进一步简化成了一句 Prompt。

我基本是一条一条把问题丢给 AI,它改完我真机验证,再提下一个。

1)键盘遮挡输入框

最先碰到的是老问题:键盘弹起来,把输入框挡住了。

我让 AI 监听 keyboardHeight,用外层容器的 paddingBottom 把输入区顶上去。它顺手还处理了一个细节——Kuikly 的键盘事件要挂在 Input / TextArea 上,而 ChatSession 内部的输入框不暴露这个事件,于是它在页面内挂一个代理 Input 承接 Kuikly 的键盘事件回调。这个绕法挺地道,不是我提示的。

2)鸿蒙上新建会话不生效

在鸿蒙端验证时发现一个偏功能性的 bug:新建会话后,历史列表里始终只有那一条旧会话。

把现象交给 AI,它顺着路由链路定位到根因落在鸿蒙的 RouterAdapter,这是 Kuikly 处理页面跳转的模块,鸿蒙端默认的 RouterAdapter 没有考虑"先 openPage 再 closePage"的边界场景。因为有 Kuikly AI 的知识库托底,仅一轮对话就解决了问题。

3)拍照/相册入口:从 ActionSheet 改成宫格按钮

一开始点"+"弹的是系统 ActionSheet。我觉得这不够"聊天 App",要求改成更常见的、类似微信那种在输入框下方展开的宫格快捷入口。

这一条反而最折腾,一开始 AI 没意识到快捷入口面板和键盘抬升是互斥关系,从面板切到键盘的一瞬间,输入框会抬升"面板 + 键盘"的双重距离,跳一下才落回正常位置。描述澄清了好几轮,AI 才把面板和键盘收敛到同一套底部抬升逻辑里,共享同一个抬升量,保持输入框位置稳定,问题彻底解决。

这也印证了一个共识:AI 从 0 到 1 很快,但从"能用"到"细腻",还是得靠人一轮轮盯着调。

4)各页面 UI 统一

最后是收口。选图页、网页页这些后加的页面,UI 风格和主聊天页、会话列表页对不齐。我直接让 AI 把 ImagePickerPageWebViewPage 对齐到 ChatPageSessionListPage 的设计规范上。

它先自己读了两个主页面,提炼出一套规范——紫色渐变背景、44dp 透明导航栏、 返回按钮、17sp 白色居中标题、浅色内容区——再把另外两个页面逐项对齐。这种"先归纳现有规范、再套用到新页面"的做法,比我一条条描述样式高效得多。

17:30 - 18:00|验收复盘:一天,一码三端,一个能用的 AI 聊天 App

到傍晚,这个 App 已经在 Android、iOS、鸿蒙三端真机上都跑通了。

回看一下它最终具备的能力:

  • 文本 / 图片消息发送

  • 拍照、相册选图

  • AI 流式回复(SSE 长连接)

  • Markdown 渲染、点链接打开网页

  • 多模态图文理解

  • 本地会话管理与历史恢复

这不是一个截图演示用的 demo,而是一个交互完整、三端一致、真的能装到手机上聊起来的应用。而这一切,一个人、一天就做完了。

思考总结

Kuikly 解决了什么

如果用传统三端原生开发这样一个 App——iOS、Android、鸿蒙各派一人,设计只做一次,但每块各端相关功能都要写三遍:

换成 Kuikly 一码三端,同样的功能只需一份代码:

从 30 人天到 7.5 人天,Kuikly 最直接节省的,是这种重复劳动的成本,这个成本可能是开发者的工时,也可能是 AI 的 token 开销。

更深一层节省的,是重复决策。拿"ActionSheet 改成宫格按钮"来说——伴随布局调整,还要连带解决键盘抬升与附件面板的冲突、UI 配色不协调等一连串问题,来回调了好几轮才稳下来。但所有这些轮次,都只在 shared 层发生了一次。如果没有 Kuikly,就要在 Android、iOS、鸿蒙上各来一遍,还要额外确保三端行为对齐。一码多端省掉的,正是这种"同一件事做三遍"的乘数效应。

AI 解决了什么

7.5 人天,是一个 Kuikly 熟手的工作量。而这次接上 AI 后,实际只花了约 7.5 小时:

从 7.5 人天压到 1 天,靠的不是 AI 一秒生成几千行,而是 Kuikly AI 让它真的"懂 Kuikly"。这一天最大的感受是:在 Kuikly AI 的 Skills 和 Rules 加持下,AI 不止是一个"会写 Kotlin 的通用模型",而更像一个熟悉 Kuikly 的资深开发。具体体现在几件事上:

  • 自定义 Module 写得很地道。 SSE 和图片压缩这两个框架没覆盖的能力,AI 用 kuikly-expand-api 技能补齐——commonMain 定义接口、三端各实现 native 桥接,结构和官方 Module 如出一辙,不用我去纠正"Kuikly 的 Module 到底该怎么写"。

  • DSL 和响应式理解到位。 页面结构、组件用法、状态绑定都拿捏得准。消息列表、流式回复这些要随状态自动重渲染的地方,它直接用 observable 把数据和 UI 绑起来,写法很贴合 Kuikly 的范式。

  • 自定义组件、扩展原生也不在话下。 为了监听键盘,它自己加了一个零尺寸的代理 Input;为了对接相册的 content:// 地址,它改对了 ImageAdapter——这些都是要懂 Kuikly 渲染层和原生接缝才能下手的活。

  • 知道什么时候复用、什么时候自己写。 该用 AiMessageText 就不再造 Markdown 轮子;该扩展能力就老实补 Module;遇到问题(相册缩略图)能自己 logcat + adb 把根因查到 ImageAdapter,而不是把报错原样丢回来。

这些恰恰是过去 AI 写客户端代码最容易翻车的地方——凭记忆瞎猜私有 API。Kuikly AI 把框架知识喂给模型,相当于补齐了"资深 Kuikly 开发"的上下文,让它在正确的知识边界内工作。

"AI + Kuikly" 是当下客户端开发效率最高的组合之一。

这一天下来,我的体验是,Kuikly 消灭了跨端的重复劳动,AI 消灭了框架层面的样板劳动,剩下留给人的是产品判断、体验打磨、工程把关。说得更具体一点——"AI + Kuikly" 让一个客户端开发,真的有了"一个人顶一个三端小队"的体感。把繁琐交给 Kuikly 和 AI,把判断力和创造力留给自己。

关于 Kuikly

当前Kuikly已经开源,有兴趣和有需要的产品,可以通过以下方式访问 Kuikly 仓库和文档,欢迎Star、Watch与体验:

📚官方文档:

https://kuikly.tds.qq.com/Introduction/arch.html

👉 Github 仓库:

https://github.com/Tencent-TDS/KuiklyUI

Kuikly框架属于腾讯端服务联盟(tds.qq.com)的重要成员,欢迎关注及了解更多信息:

腾讯端服务官网:

https://tds.qq.com/

TDS Framework官网:

https://framework.tds.qq.com/

最新文章

随机文章

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