一个人写了大半年 Android App,聊聊过程中的一些取舍
App 是 Meows ,Android 上的 Linux 服务器监控工具,纯原生 Jetpack Compose 开发,之前发过几次。这次不介绍功能了,聊聊开发过程中一些纠结过的点。
要不要装 agent
一开始也考虑过走 agent 方案,服务端装个守护进程推数据,能做的事情多很多。但想了想,我自己作为用户其实最烦在服务器上多装东西,尤其是小鸡,本来资源就不多。
最后选了纯 SSH ,好处是零侵入,坏处是能拿到的数据有限,得在客户端做更多解析。这个取舍到现在觉得是对的——填个地址就能看到所有指标,不用折腾。

CPU 、内存、磁盘、上下行流量、TCP 连接数、在线时长,实时刷新。9 种指标都有历史曲线,可以切 1 分钟 / 2 分钟 / 5 分钟跨度。

终端要不要自己写
调研了一下 Android 上能用的终端库,要么太老,要么和 Compose 不兼容。最后决定自己写 ANSI 解析引擎,手搓状态机。
写完才发现这东西是个坑——光是 CJK 全角字符的宽度处理就搞了好几天,还有各种转义序列的边界情况。不过好处是完全可控,后面加语义着色就很自然:终端自动识别输出内容类型上色,文件权限逐字符着色( r 绿 w 橙 x 红)、路径按类型区分(/etc 配置色、/var/log 日志色)、IP 地址、百分比阈值着色(≥90% 红、≥70% 黄),比纯白字看着舒服不少。

nano 、vim 、htop 都能正常跑,底部有快捷键栏,支持跳板机,内置了 4 款等宽字体可选。

关于定价和安全
$4.99 一次买断,没有订阅,没有内购,没有广告,后续更新免费。去年 10 月底上架,到现在版本号刷到 1.0.144 了。
不想做免费 + 广告,一是体验差,二是不想接第三方 SDK 。App 只申请了通知权限,不收集不共享任何数据。所有密码和私钥走 AES-GCM + Android Keystore 硬件级加密,不是明文落盘。

其他功能
- 告警:CPU 、内存、磁盘阈值 + 掉线通知,多指标超标合并推送,有防抖
- 离线 IP 库 + 骨干网识别( CN2 、9929 、CMI 这些)
- 8 项流媒体 / AI 解锁检测,直接显示在卡片上
- SSH 登录失败次数统计,一眼看出有没有被暴力破解
- Google Drive 加密备份,换机一键恢复


下载
Google Play 搜 Meows
https://play.google.com/store/apps/details?id=com.meows.android
上架地区: 日本、美国、新加坡、韩国、香港、台湾、英国、加拿大、澳门、马来西亚、冰岛。
要求: Android 14+,Google Play 商店 → 设置 → 关于 → 「设备已通过认证」( Google Play 策略,非 App 限制。解锁 bootloader 的设备可能显示未认证,可先在网页端入库)。支持简中 / 繁中 / 英 / 日 / 韩。
有问题或建议可以直接回帖,我都会看。
@lambdavip2022 不需要,服务器端零安装。手机装好 App ,填上服务器 IP 和 SSH 账号就能用,针对这个问题,文章第一节说过了
这个需要在服务器安装对应的 server 组件吗?还是只需要手机安装 APK 就可以用了。