Camera 调试问题总结

1. qtiqmmfsrc 不支持 num-buffers 现象 在 gst-launch-1.0 命令中加入: qtiqmmfsrc camera=0 num-buffers=1 报错: WARNING: erroneous pipeline: no property "num-buffers" in element "qmmfsrc0" 结论 qtiqmmfsrc 不是标准 videotestsrc 一类元素,不支持 num-buffers 属性。 处理方式 改用: timeout 控制时长 或后续用 identity / multifilesink / 后处理方式控制帧数 2. 直接 image/jpeg + filesink 生成空文件 现象 下面这类命令可以跑起来,但输出的 jpg 是 0 字节: qtiqmmfsrc camera=0 ! 'image/jpeg,width=3840,height=2160' ! filesink location=/tmp/snapshot.jpg 原因 filesink 本身只是写字节流,不适合直接拿来当“单张拍照”的最终输出方式。 处理方式 改用: ... ! multifilesink location=/tmp/snapshot%d.jpg 然后再挑选某一帧复制成最终文件。 3. 前几十帧是黑图 现象 直接启动摄像头后保存的前几帧是黑的,后面帧才正常。 ...

June 1, 2026 · lx666

Rust 重写 IoT 自动化框架 - 阶段 1:核心功能

📋 前置准备 1. 安装 Rust Windows 安装步骤: 下载 Rust 安装器 访问:https://rustup.rs/ 或直接下载:https://win.rustup.rs/x86_64 运行安装器 # 下载后运行 rustup-init.exe # 选择默认安装选项(按 1 然后回车) 验证安装 # 重新打开 PowerShell rustc --version cargo --version 配置国内镜像(可选,加速下载) # 创建配置文件 mkdir $env:USERPROFILE\.cargo notepad $env:USERPROFILE\.cargo\config.toml 添加以下内容: [source.crates-io] replace-with = 'ustc' [source.ustc] registry = "https://mirrors.ustc.edu.cn/crates.io-index" 2. 安装 VS Code Rust 插件(推荐) rust-analyzer: Rust 语言服务器 CodeLLDB: 调试器 crates: 依赖管理 🏗️ 第 1 步:创建项目结构 1.1 创建新项目 cd C:\Users\xli23\Desktop\uv-env cargo new iot-automation-rust cd iot-automation-rust 1.2 项目结构 iot-automation-rust/ ├── Cargo.toml # 项目配置和依赖 ├── src/ │ ├── main.rs # 程序入口 │ ├── lib.rs # 库入口 │ ├── cli.rs # 命令行参数 │ ├── config/ # 配置模块 │ │ ├── mod.rs │ │ ├── parser.rs │ │ └── global.rs │ ├── device/ # 设备模块 │ │ ├── mod.rs │ │ └── adb.rs │ ├── test/ # 测试模块 │ │ ├── mod.rs │ │ ├── base.rs │ │ └── runner.rs │ └── utils/ # 工具模块 │ ├── mod.rs │ └── logger.rs ├── tests/ # 集成测试 └── examples/ # 示例代码 📝 第 2 步:配置 Cargo.toml 创建 Cargo.toml 文件: ...

June 1, 2026 · lx666

项目摄像头测试用例总结

1. 摄像头测试用例主要位置 Python 测试用例目录 主要在这些目录下: Case/Products/*/AUSanity/Camera/ Case/Products/*/Stability/Camera.py Case/Products/*/PreFlight/Camera.py Case/Products/*/Sanity/Camera.py Case/Products/QRB5165_UBUN_1_1/Camera/ Case/Products/QRB5165_UBUN_2_0/Camera/ Case/Products/*/Robotics/*camera*.py 典型文件包括: Case/Products/QRB5165_UBUN_2_0/AUSanity/Camera/Camera.py Case/Products/QRB5165_UBUN_2_0/AUSanity/Camera/CameraIMX586.py Case/Products/QRB5165_UBUN_2_0/AUSanity/Camera/CameraIMX686.py Case/Products/QRB5165_UBUN_2_0/AUSanity/Camera/CameraOV9282.py Case/Products/QRB5165_UBUN_2_0/AUSanity/Camera/CameraGMSL.py Case/Products/QCS8550_LE_1_0/AUSanity/Camera/CameraIMX766.py Case/Products/QCS8550_LE_1_0/AUSanity/Camera/CameraIMX688.py Case/Products/QCS8550_LE_1_0/AUSanity/Camera/CameraOV64B40.py Case/Products/QCS8550_LE_1_0/AUSanity/Camera/CameraS5K3M5.py Case/Products/QCS8550_LE_1_0/AUSanity/Camera/CameraConcurrency.py Case/Products/QCS8625_LE_1_0/AUSanity/Camera/*.py Case/Products/CQ7790M_LE_1_5/AUSanity/Camera/*.py Case/Products/QCS610_LE_1_0_C2/Stability/Camera.py Case/Products/QRB5165_UBUN_2_0/Stability/Camera.py Case/Products/QRB5165_UBUN_1_1/Camera/CameraGST.py Case/Products/QRB5165_UBUN_1_1/Camera/CameraHAL3.py Case/Products/QRB5165_UBUN_1_1/Camera/CameraFRandLBT.py Plan 配置目录 摄像头命令和计划主要在: Plan/*/*/Config/Camera/ Plan/*/*/Config/Camera/TestCommands/*.json Plan/*/*/Config/PreFlight/*Camera*.xml Plan/*/*/Config/Stability/*Camera*.xml 典型配置文件: Plan/LU/QRB5165_UBUN_2_0/Config/Camera/TestCommands/GSTCommands.json Plan/LU/QRB5165_UBUN_2_0/Config/Camera/TestCommands/SevenCameraCommends.json Plan/LU/QRB5165_UBUN_2_0/Config/Camera/TestCommands/USBCameraCommands.json Plan/LU/QRB5165_UBUN_2_0/Config/Camera/TestCommands/LBT_GSTCommands.json Plan/LU/QRB5165_UBUN_2_0/Config/Camera/TestCommands/LBT_HAL3Commands.json Plan/LE/QCS8550_LE_1_0/Config/Camera/TestCommands/CameraGST_commands.json Plan/LE/QCS610_LE_1_0_C2/Config/Camera/QCS610_LE_1_0_C2_Camera_LBT_test_plan.xml 2. QRB5165_UBUN_2_0 摄像头用例 2.1 AUSanity 单摄基础功能 平台 文件路径 用例 / 用例族 测试点 Pass 条件 QRB5165_UBUN_2_0 Case/Products/QRB5165_UBUN_2_0/AUSanity/Camera/Camera.py IMX577Preview IMX577 预览,3840x2160,60fps,dump YUV /data/output/camera/ 下生成 IMX577_Preview*.yuv,且文件大小 > 0 QRB5165_UBUN_2_0 同上 IMX577Snapshot IMX577 预览 + 拍照,输出 JPG pipeline 进入 PLAYING;生成 IMX577_Snapshot_*.jpg;文件大小 > 0 QRB5165_UBUN_2_0 同上 IMX577LiveSnapshot IMX577 边录像边拍照,H.264 mp4 + JPG pipeline 进入 PLAYING;生成 IMX577_Live_Snapshot_*.jpg 且大小 > 0;同时拉取 IMX577_h264.mp4 QRB5165_UBUN_2_0 Case/Products/QRB5165_UBUN_2_0/AUSanity/Camera/CameraIMX586.py IMX586Preview IMX586 预览,4K YUV dump 生成 IMX586_Preview*.yuv 且大小 > 0 QRB5165_UBUN_2_0 同上 IMX586Snapshot IMX586 拍照,JPG 输出,8000x6000 pipeline 进入 PLAYING;生成 IMX586_Snapshot_*.jpg 且大小 > 0 QRB5165_UBUN_2_0 同上 IMX586LiveSnapshot IMX586 live snapshot + H.264 录像 生成 IMX586_Live_Snapshot_*.jpg 且大小 > 0;生成或拉取 IMX586_h264.mp4 QRB5165_UBUN_2_0 Case/Products/QRB5165_UBUN_2_0/AUSanity/Camera/CameraIMX686.py IMX686Preview / Snapshot / LiveSnapshot IMX686 预览、拍照、边录边拍 对应 YUV/JPG/MP4 文件存在且大小 > 0 QRB5165_UBUN_2_0 Case/Products/QRB5165_UBUN_2_0/AUSanity/Camera/CameraOV9282.py CameraOV9282 相关用例 OV9282 tracking camera 预览 / RAW10 dump 输出 .raw10 或预览 dump 文件,文件存在且大小 > 0 QRB5165_UBUN_2_0 Case/Products/QRB5165_UBUN_2_0/AUSanity/Camera/CameraGMSL.py CameraGMSL 相关用例 GMSL 摄像头预览、RAW12、录像、快照 输出 .raw12 / .mp4 / .jpg 等目标文件,且大小 > 0 2.2 Stability 摄像头稳定性与并发 平台 文件路径 用例 / 用例族 测试点 Pass 条件 QRB5165_UBUN_2_0 Case/Products/QRB5165_UBUN_2_0/Stability/Camera.py IMX577SnapshotDisplayPreview IMX577 display preview + snapshot 生成 snapshot* 文件,大小 > 0 QRB5165_UBUN_2_0 同上 IMX577LiveSnapshotDisplayPreview IMX577 预览 + 录像 + live snapshot 子进程 IMX577LSDPCon 执行成功;snapshot 和 mp4 都存在且大小 > 0 QRB5165_UBUN_2_0 同上 DualCameraConcurrency 双摄并发:IMX577 live snapshot + OV9282 tracking preview 两个并发子进程都 Pass;主摄 snapshot/video 成功,tracking camera preview 成功 QRB5165_UBUN_2_0 同上 FourIMX577Concurrency 四路 IMX577 并发录像 /data/output/ 中生成 mux0_264.mp4、mux1_264.mp4、mux2_264.mp4、mux3_264.mp4,全部大小 > 0 QRB5165_UBUN_2_0 同上 SevenCameraConcurrency 七摄并发:2 路 IMX577、3 路 OV9282、2 路 GMSL 所有 7 个子摄像头进程都 Pass;IMX577 要生成 jpg + mp4;OV9282 要生成 raw10;GMSL 要生成 raw12 QRB5165_UBUN_2_0 同上 TwoOV9282DisplayPreview 两路 OV9282 同时 display preview 两路 pipeline 都成功进入 PLAYING,日志中有 Pipeline state change was successful QRB5165_UBUN_2_0 同上 TwoGMSLDisplayPreview 两路 GMSL 同时 display preview 两路 GMSL 子进程都 Pass,日志中有 pipeline 成功状态 2.3 Camera 通用 GST/HAL3/LBT 测试 平台 文件路径 用例 / 用例族 测试点 Pass 条件 QRB5165_UBUN_1_1 / 2_0 复用 Case/Products/QRB5165_UBUN_1_1/Camera/CameraGST.py GSTCamera 从 JSON 读取 GStreamer 命令,执行单摄/多摄 preview、video、snapshot、参数测试 pipeline_res、video_res、preview_res 全部为 True QRB5165_UBUN_1_1 / 2_0 复用 同上 CameraStartStopSequence 多摄启动/停止顺序组合测试 所有排列组合的 pipeline、video、preview 检查均通过;没有失败子目录 QRB5165_UBUN_1_1 / 2_0 复用 同上 CameraLongDuration 长时间 Camera 稳定性测试 在 GlobalVariable.test_time 内循环检查:pipeline 正常、video 正常、preview 正常、GST log 无错误、无 coredump QRB5165_UBUN_1_1 / 2_0 复用 Case/Products/QRB5165_UBUN_1_1/Camera/CameraHAL3.py CameraHAL3 使用 camx-hal3-test 测 HAL3 preview/video/snapshot app 启动成功;preview/video/snapshot dump 存在且大小 > 0;无 crash dump;性能用例 fps 达标 QRB5165_UBUN_1_1 / 2_0 复用 同上 CameraHAL3LongDuration HAL3 长时间测试 指定时间内多轮 dump 检查均正常;无 crash;最后设置 PASS QRB5165_UBUN_1_1 / 2_0 复用 Case/Products/QRB5165_UBUN_1_1/Camera/CameraFRandLBT.py yavta USB/V4L2/yavta camera buffer 采集 log 中出现 buffers released,或生成 testyuv* 文件且大小 > 0 3. QCS610_LE_1_0_C2 摄像头用例 平台 文件路径 用例 / 用例族 测试点 Pass 条件 QCS610_LE_1_0_C2 Case/Products/QCS610_LE_1_0_C2/Stability/Camera.py IMX577Snapshot IMX577 预览 + 拍照 生成 snapshot*.jpg 且大小 > 0;生成 frame*.yuv 且大小 > 0;两者都满足才 Pass QCS610_LE_1_0_C2 同上 IMX577LiveSnapshot IMX577 预览 + snapshot + H.264 录像 snapshot*.jpg、frame*.yuv、mux1.mp4 均存在且大小 > 0 QCS610_LE_1_0_C2 同上 USBCameraVideoRecording USB Camera 录像,v4l2src 采集 log 中包含 Execution ended,且不包含 error;/tmp/uvc.mp4 存在且大小 > 0 QCS610_LE_1_0_C2 同上 USBCameraCon USB Camera 并发封装录像 与 USBCameraVideoRecording 类似;mp4 存在且大小 > 0 后子进程 Pass QCS610_LE_1_0_C2 同上 IMX577VideoRecordingPreview IMX577 preview + video recording 子进程 IMX577VideoRecordingPreviewCon Pass QCS610_LE_1_0_C2 同上 IMX577VideoRecordingPreviewCon 预览帧 dump + 录像 frame*.yuv 存在且大小 > 0;mux1.mp4 存在且大小 > 0 4. QCS8550_LE_1_0 摄像头用例 4.1 AUSanity 单摄 平台 文件路径 用例 / 用例族 测试点 Pass 条件 QCS8550_LE_1_0 Case/Products/QCS8550_LE_1_0/AUSanity/Camera/CameraIMX766.py IMX766Preview / Snapshot / LiveSnapshot IMX766 主摄 4K/8K 预览、拍照、边录边拍 pipeline 进入 PLAYING;对应 YUV/JPG/MP4 文件存在且大小 > 0 QCS8550_LE_1_0 Case/Products/QCS8550_LE_1_0/AUSanity/Camera/CameraIMX688.py IMX688LiveSnapshot 等 IMX688 预览、录像、live snapshot 目标输出文件存在且大小 > 0 QCS8550_LE_1_0 Case/Products/QCS8550_LE_1_0/AUSanity/Camera/CameraOV64B40.py CameraOV64B40 OV64B40 4K preview/video 预览或视频输出存在且大小 > 0 QCS8550_LE_1_0 Case/Products/QCS8550_LE_1_0/AUSanity/Camera/CameraS5K3M5.py CameraS5K3M5 S5K3M5 RAW10 / RDI dump RAW/YUV dump 存在且大小 > 0 QCS8550_LE_1_0 Case/Products/QCS8550_LE_1_0/AUSanity/Camera/CameraOV9282.py CameraOV9282 OV9282 tracking camera RAW10 或 preview dump 存在且大小 > 0 QCS8550_LE_1_0 Case/Products/QCS8550_LE_1_0/AUSanity/Camera/CameraGMSL.py CameraGMSL GMSL preview、raw、video、snapshot 对应 raw12/mp4/jpg/yuv 文件存在且大小 > 0 4.2 并发 / 压力 平台 文件路径 用例 / 用例族 测试点 Pass 条件 QCS8550_LE_1_0 Case/Products/QCS8550_LE_1_0/AUSanity/Camera/CameraConcurrency.py FourCameraConcurrency 或 HDK/HAL 四摄相关 四摄并发,通常覆盖 IMX766、IMX688、OV64B40、S5K3M5 四路 camera 输出均存在,且文件大小 > 0;所有子进程 Pass QCS8550_LE_1_0 Case/Products/QCS8550_LE_1_0/Stability/Camera.py Camera stability 用例 长时间摄像头压力 / 多轮稳定性 测试周期内无 crash、无 coredump、输出正常、fps/日志检查正常 QCS8550_LE_1_0 Case/Products/QCS8550_LE_1_0/Stability/NonGPU/Camera.py NonGPU Camera 压力 非 GPU 场景下摄像头稳定性 同稳定性逻辑:pipeline 正常、输出正常、无 error 5. QCS8625_LE_1_0 摄像头用例 平台 文件路径 用例 / 用例族 测试点 Pass 条件 QCS8625_LE_1_0 Case/Products/QCS8625_LE_1_0/AUSanity/Camera/CameraIMX766.py IMX766 相关 主摄 preview/snapshot/live snapshot 输出文件存在且大小 > 0 QCS8625_LE_1_0 Case/Products/QCS8625_LE_1_0/AUSanity/Camera/CameraIMX688.py IMX688 相关 预览、录像、快照 输出文件存在且大小 > 0 QCS8625_LE_1_0 Case/Products/QCS8625_LE_1_0/AUSanity/Camera/CameraOV64B40.py OV64B40 相关 4K preview/video 输出文件存在且大小 > 0 QCS8625_LE_1_0 Case/Products/QCS8625_LE_1_0/AUSanity/Camera/CameraS5K3M5.py S5K3M5 相关 RAW10/RDI dump raw/yuv 输出存在且大小 > 0 QCS8625_LE_1_0 Case/Products/QCS8625_LE_1_0/AUSanity/Camera/CameraOV9282.py OV9282 相关 tracking camera preview/raw dump raw10 或 preview dump 存在且大小 > 0 QCS8625_LE_1_0 Case/Products/QCS8625_LE_1_0/AUSanity/Camera/CameraGMSL.py GMSL 相关 GMSL preview/video/raw/snapshot raw12/mp4/jpg/yuv 等存在且大小 > 0 QCS8625_LE_1_0 Case/Products/QCS8625_LE_1_0/AUSanity/Camera/CameraConcurrency.py 并发 camera 多摄并发 所有并发子摄像头均 Pass QCS8625_LE_1_0 Case/Products/QCS8625_LE_1_0/Stability/Camera.py Camera stability 稳定性压力 指定时间内无错误、输出正常、无 crash 6. CQ7790M_LE_1_5 摄像头用例 平台 文件路径 用例 / 用例族 测试点 Pass 条件 CQ7790M_LE_1_5 Case/Products/CQ7790M_LE_1_5/AUSanity/Camera/CameraIMX766.py IMX766 preview/snapshot/live snapshot 输出文件存在且大小 > 0 CQ7790M_LE_1_5 Case/Products/CQ7790M_LE_1_5/AUSanity/Camera/CameraIMX688.py IMX688 preview/video/snapshot 输出文件存在且大小 > 0 CQ7790M_LE_1_5 Case/Products/CQ7790M_LE_1_5/AUSanity/Camera/CameraIMX858.py IMX858 preview/video/snapshot 输出文件存在且大小 > 0 CQ7790M_LE_1_5 Case/Products/CQ7790M_LE_1_5/AUSanity/Camera/CameraS5KJN1.py S5KJN1 preview/video/snapshot 输出文件存在且大小 > 0 CQ7790M_LE_1_5 Case/Products/CQ7790M_LE_1_5/AUSanity/Camera/CameraOV9282.py OV9282 tracking camera raw10/preview 输出存在且大小 > 0 CQ7790M_LE_1_5 Case/Products/CQ7790M_LE_1_5/AUSanity/Camera/CameraGMSL.py GMSL raw12/preview/video/snapshot 输出文件存在且大小 > 0 CQ7790M_LE_1_5 Case/Products/CQ7790M_LE_1_5/AUSanity/Camera/CameraConcurrency.py 多摄并发 多路 camera 同时运行 所有子 camera 结果均为 Pass 7. SW5100_LAW 系列摄像头用例 平台 文件路径 用例 / 用例族 测试点 Pass 条件 SW5100_LAW_1_0 Case/Products/SW5100_LAW_1_0/PreFlight/Camera.py PreFlight Camera Android/LAW 平台摄像头预检,snapshot / live snapshot / video 输出文件生成、命令执行无 error、检查逻辑通过 SW5100_LAW_1_1 Case/Products/SW5100_LAW_1_1/PreFlight/Camera.py PreFlight Camera 前后摄 ZSL/PZSL snapshot、双摄 snapshot、双摄录像 对应截图/录像文件存在;流程无异常 SW5100_LAW_1_1 Case/Products/SW5100_LAW_1_1/Sanity/Camera.py Sanity Camera 基础相机 sanity 命令执行成功,目标输出存在 SW5100_LAW_1_1 Case/Products/SW5100_LAW_1_1/Stability/Camera.py Stability Camera 摄像头稳定性 指定时间内无错误、输出正常 SW5100_LAW_2_0 Case/Products/SW5100_LAW_2_0/Sanity/Camera.py Sanity Camera 基础相机功能 输出正常,无异常 相关 Plan: ...

June 1, 2026 · lx666

提供cloudfare的api(国内版)

cloudfare现在可以用自带的创建worker,设置,比我自己找代码好用多了。 现在国内好像访问不了cloudfare的地址了。。。我搞了个。设置ddns很好用。 原文链接: 提供cloudfare的api(国内版) 作者: lixusocool

May 28, 2026 · lixusocool

opencode使用记录

使用,占用1G左右空间 npm install -g opencode-a .我用的 flash free,不开科学用不了。。。。但是用了几次就提示我额度超了得开套餐。。。比较坑。 生成的一般吧能用但是不算精美。 原文链接: opencode使用记录 作者: lixusocool

May 23, 2026 · lixusocool

用 Rust 重写 IoTAutomationFramework 的可行性分析

📊 可行性评估:✅ 完全可行 为什么可以用 Rust 重写? 1. 核心功能都有 Rust 替代方案 Python 组件 Rust 替代方案 成熟度 ADB 命令执行 std::process::Command ✅ 完美 子进程管理 tokio::process ✅ 完美 JSON 解析 serde_json ✅ 完美 XML 解析 quick-xml, roxmltree ✅ 完美 HTTP 请求 reqwest ✅ 完美 日志系统 log, tracing, env_logger ✅ 完美 正则表达式 regex ✅ 完美 文件操作 std::fs, tokio::fs ✅ 完美 串口通信 serialport ✅ 完美 SSH 连接 ssh2, russh ✅ 良好 异步运行时 tokio, async-std ✅ 完美 命令行参数 clap ✅ 完美 配置管理 config, toml ✅ 完美 测试框架 内置 #[test] ✅ 完美 HTML 生成 askama, tera ✅ 完美 2. UIAutomator2 的替代方案 挑战: Python 的 uiautomator2 没有直接的 Rust 等价物 ...

May 11, 2026 · lx666

freebuff国内用不了

这个,有没有大佬能用的 原文链接: freebuff国内用不了 作者: lixusocool

May 10, 2026 · lixusocool

iPhone 11至iPhone 17系列全型号详细参数对比

📱 核心性能与屏幕参数 机型 芯片 屏幕尺寸与材质 屏幕刷新率 峰值亮度 (HDR/户外) iPhone 11 A13 仿生 6.1英寸 LCD 60Hz 625尼特 iPhone 11 Pro A13 仿生 5.8英寸 OLED 60Hz 800尼特 iPhone 11 Pro Max A13 仿生 6.5英寸 OLED 60Hz 800尼特 iPhone 12 A14 仿生 6.1英寸 OLED 60Hz 1200尼特 iPhone 12 mini A14 仿生 5.4英寸 OLED 60Hz 1200尼特 iPhone 12 Pro A14 仿生 6.1英寸 OLED 60Hz 1200尼特 iPhone 12 Pro Max A14 仿生 6.7英寸 OLED 60Hz 1200尼特 iPhone 13 A15 仿生 6.1英寸 OLED 60Hz 1200尼特 iPhone 13 mini A15 仿生 5.4英寸 OLED 60Hz 1200尼特 iPhone 13 Pro A15 仿生 6.1英寸 OLED 120Hz (ProMotion) 1200尼特 iPhone 13 Pro Max A15 仿生 6.7英寸 OLED 120Hz (ProMotion) 1200尼特 iPhone 14 A15 仿生 6.1英寸 OLED 60Hz 1200尼特 iPhone 14 Plus A15 仿生 6.7英寸 OLED 60Hz 1200尼特 iPhone 14 Pro A16 仿生 6.1英寸 OLED 120Hz (ProMotion) 1600尼特 iPhone 14 Pro Max A16 仿生 6.7英寸 OLED 120Hz (ProMotion) 1600尼特 iPhone 15 A16 仿生 6.1英寸 OLED 60Hz 1600尼特 iPhone 15 Plus A16 仿生 6.7英寸 OLED 60Hz 1600尼特 iPhone 15 Pro A17 Pro 6.1英寸 OLED 120Hz (ProMotion) 2000尼特 iPhone 15 Pro Max A17 Pro 6.7英寸 OLED 120Hz (ProMotion) 2000尼特 iPhone 16 A17 Pro 6.1英寸 OLED 60Hz 2000尼特 iPhone 16 Plus A17 Pro 6.7英寸 OLED 60Hz 2000尼特 iPhone 16 Pro A18 Pro 6.3英寸 OLED 120Hz (ProMotion) 2000尼特 iPhone 16 Pro Max A18 Pro 6.9英寸 OLED 120Hz (ProMotion) 2000尼特 iPhone 17 A18 Pro 6.1英寸 OLED 120Hz (ProMotion) 2000尼特 iPhone 17 Pro A18 Pro 6.3英寸 OLED 120Hz (ProMotion) 2000尼特 iPhone 17 Pro Max A18 Pro 6.9英寸 OLED 120Hz (ProMotion) 2000尼特 📸 系统参数 机型 后置主摄 (广角) 超广角镜头 长焦镜头 (光变) 前置摄像头 iPhone 11 1200万像素 1200万像素 无 1200万像素 iPhone 11 Pro 1200万像素 1200万像素 1200万 (2倍) 1200万像素 iPhone 11 Pro Max 1200万像素 1200万像素 1200万 (2倍) 1200万像素 iPhone 12 1200万像素 1200万像素 无 1200万像素 iPhone 12 mini 1200万像素 1200万像素 无 1200万像素 iPhone 12 Pro 1200万像素 1200万像素 1200万 (2倍) 1200万像素 iPhone 12 Pro Max 1200万像素 1200万像素 1200万 (2.5倍) 1200万像素 iPhone 13 1200万像素 1200万像素 无 1200万像素 iPhone 13 mini 1200万像素 1200万像素 无 1200万像素 iPhone 13 Pro 1200万像素 1200万像素 1200万 (3倍) 1200万像素 iPhone 13 Pro Max 1200万像素 1200万像素 1200万 (3倍) 1200万像素 iPhone 14 1200万像素 1200万像素 无 1200万像素 iPhone 14 Plus 1200万像素 1200万像素 无 1200万像素 iPhone 14 Pro 4800万像素 1200万像素 1200万 (3倍) 1200万像素 iPhone 14 Pro Max 4800万像素 1200万像素 1200万 (3倍) 1200万像素 iPhone 15 4800万像素 1200万像素 无 (支持2倍无损裁切) 1200万像素 iPhone 15 Plus 4800万像素 1200万像素 无 (支持2倍无损裁切) 1200万像素 iPhone 15 Pro 4800万像素 1200万像素 1200万 (3倍) 1200万像素 iPhone 15 Pro Max 4800万像素 1200万像素 4800万 (5倍) 1200万像素 iPhone 16 4800万像素 1200万像素 无 (支持2倍无损裁切) 1200万像素 iPhone 16 Plus 4800万像素 1200万像素 无 (支持2倍无损裁切) 1200万像素 iPhone 16 Pro 4800万像素 1200万像素 4800万 (5倍) 1200万像素 iPhone 16 Pro Max 4800万像素 1200万像素 4800万 (5倍) 1200万像素 iPhone 17 4800万像素 1200万像素 4800万 (5倍) 1200万像素 iPhone 17 Pro 4800万像素 1200万像素 4800万 (5倍) 1200万像素 iPhone 17 Pro Max 4800万像素 1200万像素 4800万 (5倍) 1200万像素 🔋 续航与充电参数 机型 电池容量 (典型值) 视频播放时长 (小时) 有线充电功率 无线充电 iPhone 11 3110mAh 17小时 18W 支持 iPhone 11 Pro 3046mAh 18小时 18W 支持 iPhone 11 Pro Max 3418mAh 20小时 18W 支持 iPhone 12 2815mAh 17小时 20W 支持 iPhone 12 mini 2227mAh 15小时 20W 支持 iPhone 12 Pro 2815mAh 17小时 20W 支持 iPhone 12 Pro Max 3687mAh 20小时 20W 支持 iPhone 13 3227mAh 19小时 27W 支持 iPhone 13 mini 2406mAh 17小时 27W 支持 iPhone 13 Pro 3095mAh 22小时 27W 支持 iPhone 13 Pro Max 4352mAh 28小时 27W 支持 iPhone 14 3279mAh 20小时 27W 支持 iPhone 14 Plus 4325mAh 26小时 27W 支持 iPhone 14 Pro 3200mAh 23小时 27W 支持 iPhone 14 Pro Max 4323mAh 29小时 27W 支持 iPhone 15 3349mAh 26小时 35W 支持 iPhone 15 Plus 4383mAh 26小时 35W 支持 iPhone 15 Pro 3274mAh 23小时 35W 支持 iPhone 15 Pro Max 4422mAh 29小时 35W 支持 iPhone 16 3558mAh 22小时 35W 支持 iPhone 16 Plus 4674mAh 24小时 35W 支持 iPhone 16 Pro 3582mAh 25小时 35W 支持 iPhone 16 Pro Max 4685mAh 28小时 35W 支持 iPhone 17 3700mAh 24小时 45W 支持 iPhone 17 Pro 3850mAh 26小时 45W 支持 iPhone 17 Pro Max 4800mAh 30小时 45W 支持 📏 外观与接口参数 机型 机身尺寸 (高×宽×厚 mm) 机身重量 (g) 接口类型 特殊设计 iPhone 11 150.9 × 75.7 × 8.3 194 Lightning 铝合金边框 iPhone 11 Pro 144.0 × 71.4 × 8.1 188 Lightning 不锈钢边框 iPhone 11 Pro Max 158.0 × 77.8 × 8.1 226 Lightning 不锈钢边框 iPhone 12 146.7 × 71.5 × 7.4 162 Lightning 直角边框 iPhone 12 mini 131.5 × 64.2 × 7.4 133 Lightning 直角边框 iPhone 12 Pro 146.7 × 71.5 × 7.4 187 Lightning 直角边框 iPhone 12 Pro Max 160.8 × 78.1 × 7.4 226 Lightning 直角边框 iPhone 13 146.7 × 71.5 × 7.65 173 Lightning 刘海缩小 iPhone 13 mini 131.5 × 64.2 × 7.65 140 Lightning 刘海缩小 iPhone 13 Pro 146.7 × 71.5 × 7.65 203 Lightning 刘海缩小 iPhone 13 Pro Max 160.8 × 78.1 × 7.65 238 Lightning 刘海缩小 iPhone 14 146.7 × 71.5 × 7.8 172 Lightning 卫星紧急联络 iPhone 14 Plus 160.8 × 78.1 × 7.8 203 Lightning 卫星紧急联络 iPhone 14 Pro 147.5 × 71.5 × 7.85 206 Lightning 灵动岛设计 iPhone 14 Pro Max 160.7 × 77.6 × 7.85 240 Lightning 灵动岛设计 iPhone 15 147.6 × 71.6 × 7.8 171 USB-C 磨砂玻璃背板 iPhone 15 Plus 160.9 × 77.8 × 7.8 201 USB-C 磨砂玻璃背板 iPhone 15 Pro 146.6 × 70.6 × 8.25 187 USB-C 钛金属边框 iPhone 15 Pro Max 159.9 × 76.7 × 8.25 221 USB-C 钛金属边框 iPhone 16 147.6 × 71.6 × 7.8 170 USB-C 相机控制按键 iPhone 16 Plus 160.9 × 77.8 × 7.8 199 USB-C 相机控制按键 iPhone 16 Pro 149.6 × 71.5 × 8.25 199 USB-C 钛金属,相机控制按键 iPhone 16 Pro Max 163.0 × 77.6 × 8.25 227 USB-C 钛金属,相机控制按键 iPhone 17 149.0 × 71.0 × 8.1 195 USB-C 超薄灵动岛 iPhone 17 Pro 151.0 × 72.0 × 8.1 215 USB-C 超薄灵动岛 iPhone 17 Pro Max 164.0 × 78.0 × 8.1 235 USB-C 超薄灵动岛 🧠 与内存参数 机型 起步存储 最高存储 运行内存 (RAM) iPhone 11 64GB 256GB 4GB iPhone 11 Pro 64GB 512GB 4GB iPhone 11 Pro Max 64GB 512GB 4GB iPhone 12 64GB 256GB 4GB iPhone 12 mini 64GB 256GB 4GB iPhone 12 Pro 128GB 512GB 6GB iPhone 12 Pro Max 128GB 512GB 6GB iPhone 13 128GB 512GB 4GB iPhone 13 mini 128GB 512GB 4GB iPhone 13 Pro 128GB 1TB 6GB iPhone 13 Pro Max 128GB 1TB 6GB iPhone 14 128GB 512GB 6GB iPhone 14 Plus 128GB 512GB 6GB iPhone 14 Pro 128GB 1TB 6GB iPhone 14 Pro Max 128GB 1TB 6GB iPhone 15 128GB 512GB 6GB iPhone 15 Plus 128GB 512GB 6GB iPhone 15 Pro 128GB 1TB 8GB iPhone 15 Pro Max 256GB 1TB 8GB iPhone 16 128GB 512GB 8GB iPhone 16 Plus 128GB 512GB 8GB iPhone 16 Pro 128GB 1TB 8GB iPhone 16 Pro Max 256GB 1TB 8GB iPhone 17 128GB 1TB 8GB iPhone 17 Pro 256GB 1TB 8GB iPhone 17 Pro Max 256GB 1TB 8GB 💡 核心升级节点总结 🖥️ 屏幕与设计的全面进化 iPhone 12:全系升级 OLED 屏幕,回归直角边框设计 iPhone 14 Pro:首次引入"灵动岛"交互设计 iPhone 13 Pro:Pro 系列首次普及 120Hz ProMotion 自适应刷新率 iPhone 17:超薄灵动岛设计,进一步缩小前置摄像头区域 原文链接: iPhone 11至iPhone 17系列全型号详细参数对比 作者: lixusocool ...

May 4, 2026 · lixusocool

IoTAutomationFramework_2.0 安卓测试自动化工具

概述 这是一个基于 的 IoT 设备自动化测试框架,主要用于测试高通(Qualcomm)芯片平台的设备。 核心 1. ADB (Android Debug Bridge) ⭐⭐⭐⭐⭐ 主要工具,使用最广泛 位置:Libs/Utilities/adb.py 用途: 设备连接和通信 执行 shell 命令 文件传输(push/pull) 设备重启 日志收集 使用示例: from Libs.Utilities.adb import adb # 执行命令 adb.run_cmd("adb shell ls /data", serial_number) # 推送文件 adb.push(local_path, remote_path, serial_number) # 拉取文件 adb.pull(remote_path, local_path, serial_number) # 重启设备 adb.run_cmd("adb reboot", serial_number) 特点: 支持多设备(通过 serial_number 区分) 支持 ADB over WiFi 自动日志记录(发送和接收的命令) 2. UIAutomator2 ⭐⭐⭐⭐ UI 自动化工具 库:uiautomator2(简称 u2) 用途: Android UI 元素定位和操作 点击、滑动、输入等交互 截图和屏幕录制 应用启动和管理 使用示例: import uiautomator2 as u2 # 连接设备 d = u2.connect(serial_number) # 点击按钮 d(resourceId="com.example:id/button").click() # 输入文本 d(resourceId="com.example:id/edit").set_text("Hello") # 检查元素是否存在 if d(text="Settings").exists: d(text="Settings").click() # 滑动 d.swipe(100, 500, 100, 100) 应用场景: LAW (Linux Android Wear) 平台测试 UI 交互测试 设置配置 弹窗处理 3. SSH ⭐⭐⭐ 远程连接工具 ...

May 1, 2026 · lixusocool

Codex 配置自定义 AI API 完整指南:从零到一接入你的专属模型

配置自定义 AI API 完整指南:从零到一接入你的专属模型 前言 作为一名开发者,我们经常需要在终端环境中使用 AI 编程助手。 的 Codex 是一个非常强大的命令行 AI 编程工具,但默认情况下它只能调用 OpenAI 官方的 。那么问题来了:如果我们有自己的 API 服务(比如部署了国产、使用了代理服务、或者公司内部的 AI 平台),如何让 Codex 接入这些自定义的 API 呢? 本文将通过一个真实的配置案例,详细讲解如何在 macOS(特别是 Mini)环境下配置 Codex,使其能够调用自定义的 AI API。整个过程涉及编写、环境变量设置、版本兼容性问题排查等,希望能帮助到遇到类似问题的开发者。 一、理解 Codex 的架构 在开始配置之前,我们需要理解 Codex 的基本架构。Codex 采用了一种灵活的 Provider 机制,允许用户定义多个 AI 服务提供商,并在它们之间切换。 核心概念: Provider(提供商):一个 AI 服务的具体实现,包含 API 地址、认证方式等 Model(模型):Provider 提供的具体模型名称 Wire API:Codex 与 Provider 之间的通信协议类型 这种设计让 Codex 不仅限于 OpenAI 的服务,理论上可以接入任何兼容 OpenAI API 格式的服务。 二、配置前的准备工作 2.1 确认 Codex 版本 这是最关键的一步!不同版本的 Codex 对 API 协议的支持完全不同: ...

April 9, 2026 · 码农阿豪@新空间