星闪聊天软件,正式发布,让Android手机体验星闪科技。 原创 精华
我们的上篇文章:点我访问
今天来写的这篇文章,是来告诉51CTO的小伙伴们,经过一整天的完善,我把聊天的功能做得很棒很棒了。
解决了之前开发时遇到的各种问题,这些后面我都会讲到。也同时,修复了不少串口输出的Bug。
作为一款星闪聊天软件,星闪,NearLink,正是我们要凸显的一大特色。它是华为工程师们自立自强创造出的一大创新杰作,开创了我们中国原生的新一代近距离无线连接技术,从陪跑跟随全球脚步,到领跑超越蓝牙。
那么我们这款软件,也是在这个情况下,我认为的一款:足以让开发者和用户,都能接受,都能愿意参与使用体验开发的聊天APP,它的优点就是让任意设备(只要能和CH340芯片正常通讯)都能外挂一款星闪开发板,进行双向SLE通讯。
所以,在接下来的时间里,我将会慢慢的讲述我一个人,怎么敲出这款APP的每一行代码。我把这篇文章当成一个特别棒的教学资料,公开给大家,也是给我自己做的一个最近总结。
让我们来到C代码,我们使用小熊派厂商的星闪开发板,因为优点就是看重了他们对鸿蒙社区的贡献(在Gitee上,他们的项目,提交了不少,这一次星闪开发板的资料也是给力很多,上手简单)和这一次他们对星闪开发板的开源工作。
代码地址:点我前往我的仓库
我在小熊派的SLE_UART Demo上,添加了标注客户端服务端发送文本的标记,这很简单,因为我对文本处理的负担都放在了Android软件上。这里是服务端接收客户端的代码,下面是客户端接收服务端的代码。
C的代码,我就改动这么多。那么,C的开发工作结束后,我是第一时间启动了Android前端后端的开发。那个时候,我对软件的规划是:先做出UI,再做出CH34X芯片通信,因为那时候我看到Github上有不少资料,但是后来我后悔了。最后就是做功能。
就是这样的规划,让我后来开发时遇到了太多太多的麻烦,如下:
- Github上开源的相关CH34X Java代码,质量参差不齐,不利于整体项目开源。
- 沁恒厂商对相关的资料老旧,很多相关的代码我是通过海外平台Stackoverflow和相关开源文档翻译后才得到确切资料的。
- Android上做聊天软件,本人还是第一次做,初版的代码有点杂乱无序,主函数里还写了不少无关注释,这让我上下翻阅代码浪费了很多时间。
- 还有很多很多…
足够庆幸的是,我也是在最近俩天内把NLChat这款APP做出来了。
这是完善后的聊天页面,我在今天25号,成功的修好了相关代码的问题,这也是这几天开发的重点中的重点。我们不是做什么Demo,是真的要做一款文字通讯软件,核心就得是处理文本。
那么,接下来就是我今天对CH34xReadData该函数的大改后的情况:
其中一行MainAPP.CH34X.setReadListener(...)
是我们的写进CH34X这个Lib里面的ReadThread,本身就是一个Thread线程。当收到了串口反馈的文本后,不管是什么文本,都会以bytes字节形式输出。
这下就很简单了,字节转文本,进行文本处理,处理完后再打印在UI上,这些工作写出来很简单,做起来花的时间真的很长,首先我在自己反编译后翻译的CH34X库里写的数据包为32,我还得需要做一个StringBuffer持续写入成一个完整字节数据,再做处理。这个问题我是今天25号才排查出来的。
处理的代码就是去掉后缀Enter后,就是该怎么去掉我们在C代码上面的那么长的标注呢?我的做法是这样的:我们用一个所谓的白名单制度,只要是如下的字符串接收进Android APP里,软件再开始处理去掉前缀,字符串是长这样的:
这里用static静态了,直接写个getter函数是可以直接调用的,只要匹配上了,就可以把聊天句子前缀内容给去掉了,换成代码里安排好的时间戳,就可以打印在UI上了。
这俩天的工作,不仅仅这些,还有UI上我们也能在连接开发板前,设置好串口数据了哦。
Java代码如下:
代码介绍的最后,我得来讲讲我反编译翻译后的CH34X仓库,CH34X由驱动库、线程读和安卓广播组成。驱动库的代码尤为重要,粗略如下:
最后的最后,也是一件利于大家的好事,我开启了Gitee仓库的地址点我前往,为了方便那些不便前往GitHub的开发者。
第一篇我们约定的大家,还记得嘛?
我估计我自己还会花时间对C的源码做修改,同时在安卓上一定要做好文本提炼工作后,用SQLite做本地数据库保存,确保不会丢失聊天数据的同时,还能写时间戳保存。
接下来的几天的开发工作,我们都会围绕这些去做了,确保功能越做越多,越来越好用。让更多人愿意接触星闪开发板,愿意支持我们的NLChat开发工作。
希望51CTO的大家,能多多支持一下我们,有条件的可以前往Github给我们多多Star,您们的支持是我坚持开发最大的动力。让我们下一篇文章再见。
很有用的文章,感谢作者开源。
不错不错,必须支持!
谢谢OvO
大大支持一下
感觉很厉害
一个人开发666