- 后端
- 前端
- 人工智能
- 大模型
- 模型推理服务
- 微调
- 计算机视觉
- 音视频
【免费下载链接】easyaiot
我希望全世界都能使用这个系统,实现AI的真正0门槛,人人都能体验到AI带来的好处,而并不只是掌握在少数人手里。支持上千种垂直场景,支持AI模型定制化和AI算法定制化开发 深度融合,赋能万物智视:EasyAIoT 构筑了物联网设备(尤其是海量摄像头)的高效接入与管控网络。我们深度融合流媒体实时传输技术与前沿人工智能(AI),打造一体化服务核心。这套方案不仅打通了异构设备的互联互通,更将高清视频流与强大的AI解析引擎深度集成,赋予监控系统“智能之眼”——精准实现人脸识别、异常行为分析、风险人员布控周界入侵检测。
EasyAIoT 是一套面向物联网与视频监控的开源 AIoT 平台,其移动端基于 uni-app 实现「一码三端」:同一套 Vue 3 前端代码,配合三个轻量壳工程,即可分别打包出 Android APK、iOS IPA 与鸿蒙 HarmonyOS HAP 安装包,并支持 prod/test/dev 多环境一键出包。
下面带你快速看懂这套架构,并给出每端最快的手动打包路径 📱
一套前端 + 三个壳:移动端架构总览
EasyAIoT 移动端由四个目录协作完成,核心思想是业务代码与壳分离:
| 目录 | 角色 | 说明 |
|---|---|---|
| APP/ | 前端工程(唯一业务代码) | uni-app 3 + Vue 3 + TypeScript + Vite 5,编译出 App 资源 / H5 资源 |
| ANDROID/ | Android 壳工程 | 内置 uni-app 离线运行时(AAR),Gradle 打 APK |
| IOS/ | iOS 壳工程 | 系统 WKWebView 加载 H5 产物,xcodebuild 出 IPA |
| HARMONYOS/ | 鸿蒙壳工程 | ArkWeb(系统 WebView)加载 H5 产物,hvigor 出 HAP |
三个壳工程不含任何业务代码,只负责运行时、图标、签名与打包;界面全部来自 APP 模块的构建产物。前端与 PC 端(WEB)共用同一套后端接口(/admin-api),登录态、OAuth2 双 Token、多租户切换在移动端照常工作。
打包链路可以概括为三步:
APP (uni-app 工程) │ 1. pnpm build:app / build:h5 ← 编译前端 ▼ │ 2. 脚本自动同步产物到壳工程 ← 资源同步 ▼ │ 3. gradlew / xcodebuild / hvigorw ← 出包 ▼ easyaiot-<版本>-<环境>-<平台>.<格式>(APK / IPA / HAP)APP 端能力覆盖设备管理、实时预览、推流转发、算法任务、告警中心、模型推理与训练监控等场景,打包后在手机上的运行效果如下(来自 APP/docs/ 的移动端面板演示截图):
技术栈速览
- 框架:uni-app 3 / Vue 3,语言 TypeScript
- UI:Wot Design Uni + UnoCSS
- 状态管理:Pinia(含持久化)
- 视频播放:Jessibuca / flv.js(H5 端低延时播放器)
- HTTP:自研请求封装,支持 API 加解密
如何一键打出 Android APK
Android 端使用 DCloud uni-app离线运行时方案:APP 工程执行pnpm build:app产出 www 资源后,脚本将其同步到壳工程的assets/apps/<AppID>/www/,再内置的离线运行时 AAR 一起由 Gradle 打成 APK。
日常只需一条命令(详见 ANDROID/README.md):
cd ANDROID ./make-apk.sh # 生产环境 ./make-apk.sh test # 测试环境 ./make-apk.sh dev # 开发环境make-apk.sh 会依次完成:版本一致性校验 → 前端构建 → 清空并同步 www 资源 → Gradle assembleRelease → 复制为带环境后缀的成品。
几个关键配置(都已在仓库中就绪):
- 包名
com.basiclab.iot.app,签名证书 ANDROID/app/iot.jks(alias=iot,有效期 25 年) - 离线运行时 AAR 内置于
ANDROID/app/libs/,版本与 APP 前端编译器配套 - 多环境后端地址在
APP/env/.env.*的VITE_SERVER_BASEURL配置,默认http://localhost:48080/admin-api
若想在真机/模拟器上验证 uni-app 基座运行效果,可在 HBuilderX 中选择「使用自定义基座运行」后直接推送到 Android 设备:
如何打出 iOS IPA:WKWebView 壳 + xcodebuild
iOS 壳不走 uni-app 离线运行时,而是用系统 WKWebView 加载纯 H5 产物(这是三端中依赖最轻的一路):
cd IOS ./make-ipa.sh # 模拟器 .app(免签名,默认) ./make-ipa.sh --device # 真机/分发 .ipa(需配置 teamID) ./make-ipa.sh test # 测试环境实现上有个巧妙设计:H5 产物通过自定义协议easyiot://localhost/index.html由WKURLSchemeHandler从 bundle 内读取,页面以「正常网页」身份运行——ES Module、localStorage、对后端 admin-api 的跨域请求都与真实站点一致,规避了file://直载的各种内核限制(见 IOS/WebViewScreen.swift)。
注意两点:
- 工程使用 Xcode 16 的新格式(objectVersion 77),必须 Xcode 16+
- 真机/分发前把 IOS/ExportOptions.plist 中的
teamID占位值替换为你的 Apple Team ID;上架 App Store 则将method改为app-store-connect
如何打出鸿蒙 HAP:ArkWeb 壳 + hvigor
鸿蒙端同样是「壳 + H5」路线,用 DevEco Studio 的 ArkWeb 加载网页产物:
cd HARMONYOS ./make-hap.sh # 生产环境 ./make-hap.sh --skip-native # 无 DevEco 环境时只做前端构建 + 资源同步make-hap.sh 完成后,产物位于entry/build/**/outputs/**/*.hap,可配合hdc install -r安装到真机。这里也有个针对性设计:ArkWeb 基于 Chromium 会拦截file://源的 ES Module,壳页面把资源统一映射为虚拟主机http://appassets.local/,由onInterceptRequest从 rawfile 取字节回填(见 HARMONYOS/entry/src/main/ets/pages/Index.ets)。
调试签名最省事的方式:DevEco Studio 中File → Project Structure → Signing Configs勾选Automatically generate signature,登录华为账号即可自动补全证书与 Profile。
三端统一管理:一个入口管全部
不必分别钻进三个目录。仓库提供了统一入口.scripts/docker/mobile.sh(等价入口./install_linux.sh mobile <子命令>,完整说明见 .scripts/docker/MOBILE.md):
.scripts/docker/mobile.sh status # 三端版本一致性 / 工具链就绪度 / 已有成品 .scripts/docker/mobile.sh build android prod # 单端打包(android|ios|harmonyos|all) .scripts/docker/mobile.sh bump 1.0.1 101 # 发版:5 处版本号一次改齐 .scripts/docker/mobile.sh artifacts # 列出所有已产出安装包 .scripts/docker/mobile.sh clean android # 清理指定端打包成品其中bump命令一次改齐5 处版本号:APP 的 manifest.config.ts、Android 的build.gradle与dcloud_control.xml、iOS 的project.pbxproj(Debug/Release 两段)、鸿蒙的AppScope/app.json5,并回读校验。各端打包脚本在版本号不一致时会直接拒绝出包——宁可不出包,也不出错包 🛡️
三端安装包统一命名为全小写easyaiot-<版本>-<环境>-<平台>.<格式>(如easyaiot-1.0.0-prod-android.apk),对 CI 制品归集与对象存储归档非常友好。
版本号与常见坑速查
📌发版三原则
versionCode整数递增(不递增则无法覆盖安装)versionName五处保持一致(推荐直接用bump)- 换 Android 签名证书 = 换指纹 = 必须重新申请 AppKey,老 APK 需先卸载
📌高频问题(完整表格见各模块 README)
| 现象 | 原因 / 解决 |
|---|---|
| 改了前端代码,App 里没生效 | 只跑了 gradlew/xcodebuild/hvigorw,没有重新同步 www → 用一键脚本全流程 |
| 启动白屏 / appid 不匹配 | .env的 AppID、assets 目录名、dcloud_control.xml三处必须一致 |
| 接口全部失败 | VITE_SERVER_BASEURL还写着 localhost → 改为真实网关地址后重新出包 |
only-allow pnpm报错 | APP 工程只允许 pnpm 安装依赖,别用 npm/yarn |
| HAP 无法装真机 | 命令行打的 unsigned 包不能直装 → 配置自动调试签名 |
小结
EasyAIoT 移动端的设计思路可以总结为一句话:业务写一次,壳各端化,脚本保一致。uni-app 3 前端负责全部业务与界面,Android/iOS/鸿蒙各用一个极简壳工程承载运行时与签名,配合mobile.sh统一入口与版本号一致性校验,新人也能在三条命令内产出三个平台的正式安装包。
更多细节可延伸阅读:APP/README.md、ANDROID/README.md、IOS/README.md、HARMONYOS/README.md。
- 后端
- 前端
- 人工智能
- 大模型
- 模型推理服务
- 微调
- 计算机视觉
- 音视频
【免费下载链接】easyaiot
我希望全世界都能使用这个系统,实现AI的真正0门槛,人人都能体验到AI带来的好处,而并不只是掌握在少数人手里。支持上千种垂直场景,支持AI模型定制化和AI算法定制化开发 深度融合,赋能万物智视:EasyAIoT 构筑了物联网设备(尤其是海量摄像头)的高效接入与管控网络。我们深度融合流媒体实时传输技术与前沿人工智能(AI),打造一体化服务核心。这套方案不仅打通了异构设备的互联互通,更将高清视频流与强大的AI解析引擎深度集成,赋予监控系统“智能之眼”——精准实现人脸识别、异常行为分析、风险人员布控周界入侵检测。
相关推荐
20分钟搞定!lifeRestart移动端打包全攻略:从源码到APK/IPA的完整指南
20分钟搞定!lifeRestart移动端打包全攻略:从源码到APK/IPA的完整指南 lifeRestart(人生重开模拟器)是一款广受欢迎的文字冒险游戏,本
游戏开发前端Flet 移动端支持与 Server-Driven UI 架构解析:从移动端战略到 APK/IPA 打包实战
Flet 移动端支持与 Server Driven UI 架构解析:从移动端战略到 APK/IPA 打包实战 本篇技术指南聚焦 Flet 移动端支持(Mobil
前端跨平台Open3D移动端移植方案:iOS和Android的完整指南
Open3D移动端移植方案:iOS和Android的完整指南 Open3D作为一个强大的开源3D数据处理库,不仅支持桌面端,还提供了完整的移动端移植方案,让开发
计算机视觉图形学3D渲染
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考