LeetCode 121. 买卖股票的最佳时机(C语言详解 | 贪心算法)

核心内容摘要

VCS黑盒优化实战:用libmap屏蔽冗余模块提升仿真速度3倍(含dummy_mod模板)
C++保留几位小数

BEM 命名法的庖丁解牛

用Open-AutoGLM做了个自动刷抖音项目全过程分享最近在技术圈看到一个让人眼前一亮的项目Open-AutoGLM。

它不是又一个“调API写提示词”的玩具而是一个真正能看懂手机屏幕、理解界面元素、并动手点击滑动的AI手机助理。

我决定不只看看热闹而是亲手把它跑起来——目标很明确让AI自动打开抖音搜索指定博主进入主页完成关注。

整个过程不碰手机全靠一行命令驱动。

这不是概念演示也不是实验室里的Demo而是我在自己电脑上实打实跑通的完整链路。

过程中踩了坑、改了代码、调了参数也看到了它真实的能力边界。

下面我把从零到落地的每一步都拆解清楚不省略任何细节包括那些文档里没写的“潜规则”。

先搞明白它到底是什么不是大模型是能动手的AI代理很多人第一眼看到“Open-AutoGLM”会下意识以为这是个新语言模型。

其实不然。

它的核心身份是Phone Agent——一个运行在电脑端的AI代理框架背后调用的是智谱开源的视觉语言模型 autoglm-phone-9b。

关键区别在于普通大模型只能“说”它还能“看”和“做”。

它通过ADB实时抓取手机屏幕截图送入视觉语言模型理解当前界面比如“这是一个抖音首页底部有‘首页’‘发现’‘同城’三个Tab中间是视频流右上角有搜索图标”。

理解之后它不是输出一段文字而是生成一系列可执行的ADB指令如adb shell input tap 500 1200再自动下发执行。

整个过程形成闭环看 → 想 → 做 → 再看 → 再想 → 再做……直到任务完成。

所以它本质上是一个多模态感知 任务规划 自动化执行的三层系统。

你给它的是一句人话它还你的是真实的手机操作。

这解释了为什么它能绕过APP的反自动化机制——它不注入脚本、不模拟触摸事件底层协议而是像真人一样用系统级的ADB命令去点击、滑动、输入。

微信封禁的是“模拟点击工具”但很难封禁“一个正在用ADB调试自己手机的开发者”。

硬件与环境准备三步到位别卡在第一步整个流程依赖四个关键组件协同工作你的电脑、安卓手机、ADB通道、云端模型服务。

我们按顺序理清每一步的真实要求。

1 电脑端别被Python版本劝退操作系统Windows 10/11 或 macOS Monterey 及以上均可。

Linux理论上支持但文档未覆盖新手建议先用Win/mac。

Python必须是

10。

我试过

12部分依赖包如gradio会报兼容性警告

9则直接安装失败。

稳妥起见用

10或

11。

虚拟环境强烈建议创建独立环境避免污染全局Pythonpython -m venv openautoglm-env # Windows: openautoglm-env\Scripts\activate # macOS/Linux: source openautoglm-env/bin/activate

2 手机端开发者选项不是摆设要真开很多教程一笔带过“开启开发者模式”但实际中80%的连接失败都源于此。

请严格按以下步骤操作开启开发者选项设置 → 关于手机 → 连续点击“版本号”7次不是5次不是10次就是7次直到弹出“您现在处于开发者模式”的Toast提示。

启用USB调试返回设置 → 系统 → 开发者选项 → 找到“USB调试”务必勾选。

注意有些手机如小米还有“USB调试安全设置”也要一并打开。

安装并启用ADB Keyboard这是Open-AutoGLM实现文本输入的关键。

下载APKGitHub Release页有提供或搜索“ADB Keyboard”官方版安装后进入手机“设置 → 语言与输入法 → 当前键盘”将默认输入法切换为“ADB Keyboard”。

验证方法在任意输入框长按选择“输入法”确认ADB Keyboard在列表中且已启用。

注意部分国产手机华为、OPPO会默认关闭“允许通过USB调试修改系统设置”需在开发者选项里手动开启否则AI无法自动输入文字。

3 ADB配置环境变量不是玄学是必经之路Windows用户下载platform-tools解压到一个无中文、无空格的路径如C:\adb。

然后WinR→ 输入sysdm.cpl→ 高级 → 环境变量 → 在“系统变量”中找到Path→ 编辑 → 新建 → 粘贴你的ADB路径如C:\adb。

最后打开新命令行窗口输入adb version看到版本号即成功。

macOS用户解压后在终端执行echo export PATH$PATH:/path/to/your/platform-tools ~/.zshrc source ~/.zshrc adb version替换/path/to/your/platform-tools为你实际的解压路径。

部署控制端克隆、安装、验证三行命令搞定这一步最简单但也最容易因网络或权限问题中断。

我们用最稳的方式操作。

1 克隆代码并安装依赖git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM pip install -r requirements.txt pip install -e .小技巧如果pip install -e .报错error: Microsoft Visual C

1

0 or greater is requiredWindows请先安装Microsoft C Build Tools或改用pip install --no-build-isolation -e .。

2 验证ADB连接必须看到“device”用USB线连接手机与电脑确保手机弹出“允许USB调试吗”提示勾选“始终允许”并点确定。

然后执行adb devices正确输出应类似List of devices attached ZY322FDQJL device或WiFi连接时

192.

168.

100:5555 device如果显示unauthorized说明手机未授权重新插拔USB并确认授权弹窗如果为空检查USB线是否支持数据传输很多充电线不行。

3 验证模型服务别等运行时才发现连不上假设你已在云服务器部署好 autoglm-phone-9b 模型使用vLLM端口映射为8000执行python scripts/check_deployment_cn.py \ --base-url http://YOUR_SERVER_IP:8000/v1 \ --model autoglm-phone-9b看到类似这样的输出说明模型服务就绪Model autoglm-phone-9b is ready. Health check passed. Response time:

2s (avg over 3 requests)如果超时请检查云服务器安全组是否放行8000端口、vLLM是否正常运行、URL中的IP是否为公网IP非内网

x或

x。

刷抖音实战从打开APP到完成关注一条命令全包这才是重头戏。

我们以“打开抖音搜索抖音号 dycwo11nt61d进入其主页点击关注按钮”为完整任务链逐层拆解。

1 构造自然语言指令越具体成功率越高Open-AutoGLM对指令的语义理解很强但仍有优化空间。

推荐写法❌ 模糊“帮我关注一个抖音博主”清晰“打开抖音APP点击顶部搜索框输入抖音号‘dycwo11nt61d’点击搜索结果中昵称为‘XXX’的用户进入其主页找到并点击‘关注’按钮”我们最终使用的指令是“打开抖音APP搜索抖音号为dycwo11nt61d的博主进入他的主页点击关注按钮”注意明确写出APP名“抖音APP”而非“抖音”避免模型误判为网页使用“点击”而非“tap”或“press”保持自然语言风格不写坐标如x500,y1200那是给机器看的不是给人看的。

2 执行命令带上所有必要参数python main.py \ --device-id ZY322FDQJL \ --base-url http://

10.

1.

2

133:8000/v1 \ --model autoglm-phone-9b \ 打开抖音APP搜索抖音号为dycwo11nt61d的博主进入他的主页点击关注按钮参数说明--device-id来自adb devices的设备ID不是序列号是那一串字母数字--base-url模型服务地址格式必须是http://IP:PORT/v1最后字符串你的自然语言指令必须用英文引号包裹且不能换行。

3 实际运行过程它在做什么我们能看到什么执行后控制台会实时打印日志这是理解其工作流的关键[INFO] Capturing screenshot... [INFO] Sending image text to model... [INFO] Model response: {action: click, element: search_icon, confidence:

92} [INFO] Executing: adb shell input tap 280 120 [INFO] Capturing screenshot... [INFO] Sending image text to model... [INFO] Model response: {action: input_text, text: dycwo11nt61d} [INFO] Executing: adb shell am broadcast -a ADB_INPUT_TEXT --es msg dycwo11nt61d ... [INFO] Task completed successfully你会发现它每一步都先截图再分析再行动再截图……循环往复每次分析都给出置信度confidence低于

85时会主动暂停等待人工确认文本输入走的是ADB广播不是模拟键盘因此不受输入法限制点击坐标是模型根据截图识别出的元素中心点不是固定值适配不同分辨率。

实测耗时从命令执行到关注成功约42秒含3次截图、2次模型推理、4次ADB操作。

比真人慢但全程无需干预。

那些文档没写的“潜规则”避坑指南跑通不等于跑顺。

我在测试中遇到几个典型问题解决方案都来自源码层这里毫无保留分享。

1 ADB Keyboard检测失败改一行代码即可现象执行时报错ADBKeyboard not installed or not enabled但你明明已安装并启用。

原因main.py第127行的检测逻辑过于严格只检查APK包名是否匹配未校验输入法状态。

解决打开main.py找到类似以下代码段if not adb_keyboard_installed(): raise RuntimeError(ADBKeyboard not installed...)将其注释掉或直接改为# bypass keyboard check for testing print([WARN] Skipping ADBKeyboard check.)

2 模型响应慢或乱码不是模型问题是vLLM参数现象check_deployment_cn.py能通但main.py执行时卡住或返回乱码。

排查重点max_model_len必须 ≥ 4096autoglm-phone-9b最低要求gpu-memory-utilization建议设为

9避免OOM启动命令中必须包含--enforce-eager某些显卡驱动需要。

正确vLLM启动示例python -m vllm.entrypoints.api_server \ --model zhipu/autoglm-phone-9b \ --tensor-parallel-size 1 \ --max-model-len 4096 \ --gpu-memory-utilization

9 \ --enforce-eager \ --port

8

3 WiFi连接不稳定优先用USB远程用adb reverse现象WiFi连接后频繁断开adb connect失败。

更稳方案用USB连接手机执行adb tcpip 5555断开USB用WiFi连接但关键一步在云服务器上执行adb reverse tcp:5555 tcp:5555将服务器的5555端口反向映射到手机。

这样模型服务就能通过本地回环访问手机彻底规避WiFi丢包。

它能做什么不能做什么一份诚实的能力清单经过一周密集测试抖音、小红书、美团、B站、设置菜单我对它的能力边界有了清晰认知。

不吹不黑列在这里供你决策参考。

1 做得好的事强项场景表现说明APP启动与跳转“打开微信”“切到支付宝”“返回桌面”准确率接近100%响应快结构化界面操作☆如电商APP的商品列表页→点击某商品→进入详情页→点击“加入购物车”逻辑链完整文本输入与搜索支持中英文混合输入自动处理软键盘唤起与收起搜索框识别稳定多步任务编排☆“打开小红书搜‘北京咖啡’点第一个笔记下滑三屏点赞”成功率约85%

2 当前短板需谨慎评估限制原因应对建议动态内容识别弱视频流、滚动广告、弹幕等高频变化区域截图帧率跟不上易误判避免指令涉及“当前播放的视频”“最新弹幕”聚焦静态UI元素模糊指令容错低“找那个穿红衣服的人”“点右边那个大的”等指代不清的描述模型无法关联视觉锚点指令必须基于APP内可见文字如按钮名、Tab名、标题敏感操作需人工接管涉及支付、账号注销、权限授予时模型会主动暂停并输出WAIT_FOR_HUMAN_CONFIRMATION这是设计的安全机制不可绕过需预留人工响应时间小字体/低对比度界面识别不准某些APP的灰色小字、半透明浮层OCR识别失败率高测试前可先在手机设置中调高字体大小与对比度

7.

总结它不是一个玩具而是一把打开手机自动化的钥匙回看整个过程Open-AutoGLM的价值不在于它能“自动刷抖音”——那只是个吸引眼球的demo。

它的真正意义在于它把过去需要写几十行UiAutomator脚本、反复调试坐标的繁琐工作压缩成了一行自然语言。

它证明了一件事当AI不仅能读图还能理解图中UI的语义层级并规划出符合人类操作直觉的动作序列时“手机自动化”就从工程师的专利变成了普通人的工具。

当然它离完美还有距离推理速度、长任务稳定性、小众APP兼容性都需要迭代。

但开源的意义正是让社区一起打磨它。

你可以基于它做电商比价机器人自动扫N个APP查同款价格无障碍助手为视障用户语音描述界面并代点APP回归测试脚本生成器用自然语言描述用例自动生成可执行测试流技术终将下沉。

而Open-AutoGLM是这场下沉中一块扎实的垫脚石。

获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

数据微览!网易cc至尊舞蹈-数据微览!网易cc至尊舞蹈应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123