现在,手机上的测试应用程序颇受瞩目,尽管我们常用的nRF软件使用起来挺便捷,但众多嵌入式开发者却希望拥有可自行修改的软件。由此产生了一个疑问:若不懂安卓编程,该如何是好?实际上,有一个不错的解决方案,那就是采用QT技术。
QT的优势
QT能在多个平台上运行,这一点对想要开发手机测试软件的开发者来说极具吸引力。此外,它采用嵌入式工程师熟知的C++语言。对于那些不专门从事安卓开发的嵌入式工程师来说,这无疑是一个巨大的优势。借助QT,他们无需额外学习安卓编程知识即可开发手机测试软件。QT在不同系统间切换时表现出良好的兼容性,既节省了人力学习成本,又提高了开发效率。
从实用角度来考量,QT所开发的软件在安卓平台上运行稳定。在开发过程中,这种稳定性对软件测试至关重要。以大型项目为例,若测试软件常出问题,便会拖慢项目整体进度。
QT安卓开发环境搭建
我使用的是QT 5.13版本来构建开发环境。在搭建过程中,可以查阅相关资料。需要注意的是,在编译安卓应用时,只需挑选合适的Kit,其他配置无需调整。若手机通过USB连接电脑,运行程序后,手机会提示安装相应应用。整个过程简单易行,遵循步骤操作一般不会出错。
我们同样可以将编译生成的apk文件放入手机中安装。该apk文件存放的位置是确定的。这种多变的安装方式在实际操作中非常便捷。比如,当无法直接通过USB将手机连接到电脑时,我们就可以利用这种方法将软件安装到手机上,便于后续的测试活动进行。
寻找QT安卓BLE程序
前人种树,后人得荫。我在网上找到了一篇很有帮助的文章,并且还认识作者小哈哥。我还附上了他公众号上的原文,其中包含了代码解析,十分有用。基于这个程序,我进行了一些修改。因为我和原作者使用的蓝牙模块不同,所以不得不更改UUID。默认的UUID是16位的,这在芯片的使用手册中有提到。
static const QLatin1String serviceUuid("{00010203-0405-0607-0809-0a0b0c0d1910}");
static const quint16 serviceUuid = (quint16)0xfff0;
从功能上讲,我加入了发送区域,现在可以传输个人输入的信息。之前程序仅限于发送“Hello World”。同时,我也增设了接收区域,并将它和日志输出区域分开了。此外,我还更换了原作者的广告内容。这些调整都是为了更贴合我的使用需求。在开发实践中,根据硬件条件等因素对现有程序进行优化和调整是普遍现象。
实际测试流程
手机安装好已开发的软件后,启动APP,程序便会自动搜寻附近的蓝牙设备,并将它们一一列出。锁定目标蓝牙设备后,轻触连接按键。一旦连接成功,系统会显示相应的日志信息。不过,我注意到一个小状况,那就是通常需要点击两次连接键才能顺利完成连接。
测试手机与设备间数据传输随即展开。这包括将数据从手机发送至其他设备,亦或从设备传至手机。尽管QT程序已初步实现预期目标,但现阶段仍处于基础阶段,未来还有诸多提升空间。
QT程序的改进空间
这个程序的界面设计较为简单。优秀的UI设计对用户体验至关重要。若是一款面向用户的正式产品,其外观不佳可能会让用户感觉不够专业。此外,它在不同尺寸手机的适配上也有问题。手机屏幕大小不一,软件布局可能会出现混乱。
从功能上看,它的功能较为单一。若能增添更多实用功能,例如增设数据分析工具、改进连接算法等,那么这款软件的实用价值将显著提升。
鼓励大家尝试改进
这个QT程序的源代码大家都可以自由地使用。如果有人对修改后的源代码感兴趣,可以在文章底部留言。大家还可以共同讨论如何让这个软件在手机端测试方面更加完善。现在我想了解一下,在开发手机端测试软件的过程中,大家更看重的是功能还是界面?欢迎大家在评论区交流,同时也希望大家能点赞并转发这篇文章。