← 返回文章列表

旧手机当显示器?我折腾了一个月,最终和AI一起写了个App

——关于"纯视"PureView 的诞生记

前阵子家里硬盘坏掉了,换了硬盘之后又以为服务器坏了,最后确认是HDMI线有问题。很多年以前就处理掉了家里的台式机,生了娃之后更是没有地方摆放台式机,手边没显示器,每次都是使用电视机充当显示器,但是我的服务器(以前买的软路由刷了飞牛NAS)在书房,每次搬来搬去都挺麻烦,正好手上有吃灰的旧手机。当时想:要是能把手机当成显示器用就好了。

上网搜了一圈,确实有类似的App,但要么广告满天飞,要么功能臃肿,有的甚至要联网注册账号——我就想插个采集卡看个画面而已,至于吗?

于是脑子一热:要不自己写一个?

但是说真的,我对Android代码望而却步,怎么办?

找AI帮忙。

绿联CM716采集卡+HDMI线


一、AI 当"全栈外援"

我把需求往AI一扔:"帮我搭一个Android项目,插上USB采集卡就能看HDMI画面,不要广告,越简单越好。"

AI给我生成了项目骨架——build.gradle.kts、AndroidManifest.xml、Kotlin源文件,一整套。我只需要在Android Studio里打开,Sync一下,就能跑了。

当然,不是一次就成的。

第一版代码拿UVC库的依赖写错坐标了,CI一编译就报错找不到包。我把错误日志扔给AI,它去查了JitPack的版本库,发现原来的库根本没有release tag,又帮我换了个更稳定的库坐标。

整个开发过程就是这样:我提出想法和需求,AI帮我写代码、改bug、调CI。

前后改了十几个版本:

  • 最初:基本预览框架
  • 加全屏:点击画面隐藏按钮(我提需求,AI加代码)
  • 修Redmi Pad SE闪烁:AI分析日志,发现是芯片USB控制器问题,加防抖和自动重连
  • 加中文名"纯视":我说改名,AI几分钟改完所有资源文件和README
  • 最后的精简:AI把300行的管理器重构成不到200行

二、UVC库选型——AI帮忙踩坑

Android虽然有USB Host API,但它不支持UVC的等时传输。所以要调UVC摄像头,必须走Native层。

AI一开始推荐了开发者saki4510t开源的UVCCamera库。道理上没错,这是最成熟的选择。但放到CI上一编译,直接报"找不到依赖"。

AI自己去翻了GitHub仓库、查了JitPack页面,发现这个库2018年就停更了,连一个release tag都没有,JitPack上根本没有可用的构建产物。

然后AI又去查了一圈,找到了一个活跃维护的fork:UVCAndroid,在Maven Central上有现成的aar包。一行坐标搞定:

implementation("com.herohan:UVCAndroid:1.0.13")

这事如果让我自己重头学起,估计需要几个月才能弄明白怎么回事。AI五分钟搞定。


三、最头疼的问题——AI帮我查外网资料

代码写完,在自己主力机上测试——Vivo X100 Pro,一切正常,放到那台REDMI K30 Pro(LineageOS)上也一切正常。 直接测试我的机顶盒 飞牛NAS也可以,还能调节分辨率

然后我拿了台Redmi Pad SE(骁龙680芯片)来测,翻车了。症状极其诡异:画面闪一下,然后"设备已断开"—连接—断开,无限循环。 REDMI PAD SE(骁龙680)无限断连

我开始以为是代码写得有问题,让AI帮忙加日志、加防抖、加自动重连。代码从200行写到300多行,又从300多行精简回200行——AI帮我写了绝大部分,我只需要告诉它"试试这个方案"

但反复搞了好几版都不行。 “无信号"也是一种有信号,这个是绿联CM716的提示

我跟AI说:"你去查查外网有没有类似案例。"

AI直接搜索了XDA论坛、小米社区、libusb的GitHub Issue。找到了关键信息:

这不是代码问题,是骁龙680芯片的USB控制器有缺陷。

UVC视频流依赖USB等时传输(Isochronous transfer),而低端SoC的USB控制器要么没好好做,要么驱动有bug。Redmi Pad SE的用户在XDA上集体反馈同样的问题——不仅UVC摄像头,连USB音频、USB集线器都有兼容性问题。

原版UVCCamera的作者saki4510t早在2016年就说过:

联发科、全志、瑞芯微这些SoC厂商,根本不想让用户用UVC摄像头这类USB设备。至少存在四种问题:

  1. 供电不足
  2. 内核buffer溢出,严重时直接重启
  3. 驱动带宽不释放
  4. 等时传输失败

骁龙虽然不是联发科,但6系低端线在USB这一块的妥协是一样的。

如果没有AI去翻英文论坛和GitHub Issue,我可能还在死磕这个问题,永远找不到根本原因。

🧠本来想着这块便宜的平板还可以当个便携显示器来用,真的挖掘了全部价值,现在看来还是不行。


四、真需要买个显示器吗?

这个事之后我反思了一下:我们真的需要一个专门的显示器吗?

有些场景下需要

  • 做服务器运维,现场没有显示器
  • 调试树莓派 / Jetson Nano 之类开发板
  • 想拿大屏看 Switch / PS5 画面

但大多数场景下,旧手机就够用

一台旧手机就够用

你手边大概率有一台退役的Android手机。系统版本Android 7以上、支持OTG就行。买一根OTG线和USB采集卡,装个"纯视",插上就用。

总成本对比:

方案价格备注
OTG线 + 采集卡几十块旧手机自备,零成本
便携显示器三四百起步好的上千
新平板一千起步可能还有USB缺陷

唯一的坑就是别买太便宜的平板来专门干这个——USB控制器缺陷问题前面说过了。如果你已经有旧手机,查一下芯片型号:

SoCUVC兼容性典型设备
骁龙8系✅ 良好小米/三星旗舰
天玑9系✅ 良好Vivo X100 Pro
麒麟9系✅ 良好华为旗舰
骁龙6系❌ 可能有缺陷Redmi Pad SE/Note系列
联发科低端❌ 谨慎百元机
紫光展锐❌ 不推荐超低端平板

五、和AI一起开发的体验

整个项目前前后后十几个版本迭代,AI帮我写了至少80%的代码。我主要负责:

  • 提出需求("加个全屏"、"改个中文名"、"查查为什么闪退")
  • 测试真机(把APK传到手机上安装,插采集卡试)
  • 反馈结果("不行,还是闪"、"Vivo可以,Redmi不行")

AI负责:

  • 写代码、改代码、删代码
  • 调试CI、修依赖
  • 查外网资料、分析根因
  • 写README、写这篇文章

如果纯靠自己学Android开发再手动敲代码,这个项目至少得两三个星期。但有了AI辅助,从第一行代码到第一个可用版本,只用了两天

不是说我完全不懂技术——懂一些Android基础,但具体到Gradle配置、UVC协议细节、CI编排这些,让Agent来干比我自己问AI高效得多。

这是我认为现阶段最适合AI辅助的开发模式:你当产品经理,AI当程序员。你做决策,它写代码。