在李翔老师的指导下,近两个月完成了对Linuxu盘助手项目的开发。基本实现软件要求并做了相应的扩展。现对项目开发过程做一下总结。
一。基本功能的实现。
1.u盘热拔插的监听。学习了netlink的通信模式并参考引用了前辈的代码https://github.com/wang-bin/qdevicewatcher。netlink用于内核与用户的通信,机制是socket。
2.悬浮窗口部分。u盘插入后弹出悬浮窗口,双击窗口则弹出u盘操作主界面并隐藏悬浮窗口;最小化主窗口则弹出悬浮窗口。可对悬浮窗口进行自由拖动。
3.u盘信息的检测部分。软件实现对u盘主要信息的检测,包括u盘的厂商,剩余容量,总容量,文件系统类型,读写权限(是否为写保护),设备文件路径,挂载点路径(可选择)等。
4.u盘I/O速度的检测部分。可进行速度的初步检测和深度检测。深度检测部分耗时较长,可检测cache部分的速度。
二。高级功能的实现。
1.u盘的格式化。当用户选择格式化u盘时,软件提供几种常用的文件系统类型供用户选择,其中ext系列文件系统格式化较慢。
2.u盘文件系统的扫描修复。使用fsck功能软件将调用Linux中的fsck命令对u盘设备进行扫描和修复。注意此时u盘应处于umount状态(已自动实现),否则会扫描失败。
三。不足之处。
1.界面粗糙。作者本人美术功底为零,软件既不绚丽夺目,又不具有简洁舒适的美感。但好在功能明了,比较容易上手。
2.测试不足。在软件开发过程中,虽然每天进行n次的u盘拔插,也用坏过一块,但测试资源有限,未能对市面主流u盘进行较为全面的测试。另外,Linux系统发行版众多,版本也众多,这方面的测试也严重不足。
3.软件部分功能不健壮,虽然已经考虑到很多限制条件,但不能保证软件会一直高效稳定运行。
四。软件使用说明见 http://blog.csdn.net/silulusilulu/article/details/39078879