下面给你一套针对"局域网投屏开源项目(Android 手机 ↔ Android TV)"的编程工具清单 ,按必须 / 推荐 / 可选 分层,全部以工程效率与可维护性为导向。
一、必须工具(没有这些,项目无法推进)
1. Android Studio
-
用途:开发 Phone App + TV App
-
原因:
- 原生支持 Android / Android TV
- ADB、Profiler、Logcat 一体化
-
建议版本:稳定版(不要 Canary)
2. ADB(Android Debug Bridge)
-
用途:
- 安装 TV 端 App
- 查看系统日志
- 网络调试
-
关键用法:
adb connect TV_IPadb logcat
3. Git
-
用途:版本控制、开源协作
-
建议:
- 一个仓库,双模块(phone-app / tv-app)
- 强制 code review(即便只有你一个人)
二、核心编程库(直接决定功能)
4. Kotlin
-
用途:主语言(Phone / TV)
-
原因:
- Android 官方首选
- 协程非常适合网络 / 投屏场景
5. ExoPlayer
-
用途:TV 端媒体播放(DLNA)
-
原因:
- Android TV 标配级能力
- 支持 HLS / MP4 / DASH
-
替代:MediaPlayer(不推荐)
6. libwebrtc(WebRTC)
-
用途:屏幕镜像(实时投屏)
-
原因:
- 完全开源
- 局域网 P2P
-
说明:
- Android 使用官方 WebRTC SDK
- 信令自己实现(WebSocket)
7. MediaProjection API
-
用途:手机端屏幕捕获
-
说明:
- 系统级 API
- 无需 Root
-
限制:
- 用户必须手动授权
三、网络与协议工具(关键基础设施)
8. SSDP / UPnP 工具库
-
用途:局域网设备发现
-
实现方式:
- 自写 UDP(推荐,简单可控)
- 或使用 Cling(UPnP 库)
9. WebSocket(信令)
-
用途:
- WebRTC 建立连接
- 投屏控制指令
-
推荐库:
- OkHttp WebSocket
- Ktor(偏服务化)
10. JSON / Protobuf
-
用途:设备信息、控制协议
-
建议:
- MVP 阶段用 JSON
- 后期可换 Protobuf
四、调试与分析工具(非常重要)
11. Android Profiler
-
用途:
- CPU / 内存 / 网络
-
重点观察:
- WebRTC 推流 CPU
- ExoPlayer buffer
12. Wireshark
-
用途:
- 分析 SSDP / UDP / WebRTC
-
价值:
- 查"为什么搜不到电视"
- 查延迟问题
13. scrcpy(调试工具)
-
用途:
- 调试 TV 界面
- 录制问题现场
-
注意:
- 用于调试,不是最终方案
五、构建与工程管理工具
14. Gradle(KTS)
-
用途:构建系统
-
建议:
- 使用 Version Catalog
- Phone / TV 共用 common module
15. CI(GitHub Actions)
-
用途:
- 自动构建
- 代码检查
-
MVP 阶段:
- 只跑 build + lint 即可
六、可选但强烈推荐的效率工具
16. Postman / Hoppscotch
-
用途:
- 测试信令接口
- 调试控制协议
17. Markdown + Mermaid
-
用途:
- 写架构文档
- 画流程图
-
对开源项目非常重要
七、工具组合建议(直接给你一套)
最小可用组合(MVP)
Android Studio
+ Kotlin
+ ADB
+ ExoPlayer
+ WebRTC
+ SSDP(自写)
+ WebSocket
+ Git
稳定可维护组合
MVP 组合
+ Wireshark
+ Android Profiler
+ GitHub Actions
+ 文档(README + 架构图)
八、一句话总结
局域网投屏项目的难点不在工具选择,而在"工具边界是否清晰"
工具要少、稳定、可控,
不要为了"看起来高级"引入不必要的复杂度。