[software development] 之前有朋友想要的手机监控Linux工具,终于完善的差不多了
Tofloor
poster avatar
DebuggerX
deepin
2023-09-05 00:25
Author

image.png

20.9版本的电源管理是怎么回事,性能模式的代码写的什么鬼!?? 这个帖子里,我用自己写的小工具发现了20.9版本更新后电源管理出了问题,当时就有朋友说想尝试,我说估计一个月能完善好放出来,结果果然食盐了joy 倒不是跟deepin学的跳票,实在是最近工作比较忙,再加上完善过程中不断发现有可以继续提升的点,于是一晃快三个月,到刚才才终于达到了一个我自己比较满意的完成度。

简介

这是一个利用 Flutter/Dart 编写的,用于显示 Linux 系统状态信息的APP,可以运行在包括Android、iOS、Linux、MacOS、Windows等平台上,兼容从小屏手机到大屏幕电视等各种尺寸的展示,支持局域网自动发现服务,也支持通过网络远程使用。

image.png
image.png
image.png

开发动机

  1. 组了台洋垃圾E5主机,配的是一颗10核20线程的CPU,所以想做一个可以随时获得数框框快乐的工具
  2. 钟爱的 deepin 系统升级v23版本后系统环境改动很大,原本使用的dock栏网速插件和悬浮窗插件失效了,所以打算做一个替代品
  3. 除了日常使用 Linux 桌面,手里还有一些运行 Linux 系统的云服务器、虚拟机和机顶盒等设备,所以想要做一个无关发行版和桌面环境,通用的系统监视工具
  4. 家里一堆淘汰的旧手机想要利用起来,并且用旧手机做系统状态监控可以在不占用一丁点的电脑屏幕空间情况下显示足够丰富的信息

特性

  • 支持Android直接下载安装APP,iOS、Linux、MacOS、Windows等可以无修改直接支持
  • 多CPU架构支持(X64、ARM64)
  • 适配各种屏幕尺寸的显示、支持横竖屏切换
  • 适配多核心的自适应布局显示,最多可同时显示105个核心的状态
  • 安装脚本支持通过网络一键下载安装配置
  • 支持局域网自动发现服务
  • 支持通过网络远程使用
  • 支持设备上线自动连接
  • 优化网络数据传输量
  • 低内存占用及CPU资源占用
  • 进程合并显示优化、wine应用\玲珑应用进程信息优化
  • 支持桌面应用进程显示窗口标题
  • 可以显示的信息有:
    • CPU频率、总占用率、以及每个核心的频率、占用率
    • 内存信息及虚拟内存信息
    • 当前网络上行、下行速度及总发送、总接收
    • CPU占用最高的进程列表及占用率
    • 内存占用最高的进程列表及内存使用量

使用方法见博客:远程监视器——使用Flutter/Dart开发的Linux系统状态监视APP

安装方法

请在 Linux 系统的桌面系统或服务器上,以 非root 权限执行如下命令:

bash -c "$(curl -fsSL https://www.debuggerx.com/raw_assets/scripts/rsm_install.sh)"

根据提示依次输入:

  1. sudo密码
  2. 服务监听的端口号(1024-65535)
  3. 服务的安装模式(1.桌面模式 2.服务器模式)

开发过程分享

感谢勇哥的技术分享

在确定了需求和大致设计思路之后,我首先尝试搜索了Flutter/Dart的开发社区中已有的“轮子”。得益于这些年Flutter社区生态的蓬勃发展,其实现在也已经有不少用于在Linux环境获取系统信息的库,例如:

但在试验后,发现这些库都还不能完全满足我的需要,又查了一些资料和分享,也没能找到质量特别高且适合我的。
这时我忽然回忆起,好像曾看到过deepin的前CTO勇哥分享过几篇有关deepin开发的技术分享,其中似乎有一篇就是讲如何实现deepin里那个酷炫的系统监视器的,于是赶紧找来学习,一看之下大喜过望:

深度系统监视器原理剖析

勇哥的这篇文章清晰易懂,娓娓道来,不仅介绍了在Linux系统中获取系统信息的方式,也详细解释了每个文件和数据的含义和解析计算方法,关键地方甚至还贴心地准备了示例代码,同时在实现deepin的系统监视器过程中碰到的问题和总结的技巧也毫无保留的分享了出来。早先也拜读过这篇文章,但当时是没有目的性的泛读,所以还不能完全体会到其价值;如今在有明确的目标和问题的情况下阅读,结合了与其他搜索到的文章资料的对比,才深刻感受到勇哥作为技术人的追求和务实、作为社区负责人的认真与严谨、以及作为开源导师的无私和热情。

再次勉励自己,向勇哥学习!
贴上勇哥的blog地址,希望看到本文的,对技术有追求的朋友可以看看:

ManateeLazyCat - 「生活可以更简单, 欢迎来到我的开源世界」

关于进程信息的合并(见博客)

关于服务发现(见博客)

参考了deepin的UI设计

最后感谢deepin的设计和资源。
本人资深伪全栈,从需求设计到前后端开发,再到项目发布部署运维,多多少少也都能做个像那么回事,唯独美术水平一直不忍直视。所以本工具在很多地方借鉴参考了deepin的UI设计,包括不限于设计指南(UI视觉规范、设计基础知识),主题配色,组件样式,甚至app的应用图标也是直接拿系统监视器的图标来用的,可以说虽然这是个通用为目的的工具,但是一切还是优先以deepin为主,希望大家喜欢。

博客:远程监视器——使用Flutter/Dart开发的Linux系统状态监视APP

Reply Favorite View the author
All Replies
2 / 2
To page
shalling
Deepin Wiki Editor
2023-10-13 01:24
#21

👍

Reply View the author
andktan
deepin
2023-12-14 18:03
#22

joy

Reply View the author
Jamesjiang
deepin
2024-01-08 23:17
#23

非常不错。。。

Reply View the author
2 / 2
To page