弘升物联网智慧云项目总结

Posted by LuckXiang on December 18, 2018

17年一个做工程设备的朋友找到我,说他公司想做产品方向的转型,想搞一款物联网的产品,当时我还沉迷在插件系统的优化中,没想过这事。18年他又找到了我,十分诚恳。正好当时在公司的发展也遇到了瓶颈,想做一点不一样的事情,于是就来到了新的公司。我想要搞就搞完善一点,单做一款设备意义不大,要做就做一个小的平台。能实现基本的管理功能和后续新设备的集成。经过大半年的努力,项目基本达到了我预期的目标,某些地方甚至超出了我的预想。现在是时候来回顾一下了。

3月中旬加入公司,前半个月我都在熟悉公司的产品,传统的工业屏交互方式让我非常不满意:页面交互表现能力有限,电阻屏触摸困难,输入法中文支持很差,打印功能受限,存储空间小等等。现在智能手机这么普及,我在想我们这个能不能也采用安卓屏呢?抛开功能,最担心的就是安卓的稳定性怎么样,考虑到汽车电子都采用安卓屏了,我觉得这个应该可行。于是到处找供货商,还真给我找到了几家工业级安卓屏制造商。仔细评估之后,我决定采用安卓系统来开发我们的设备端产品。这样的话项目就可以分成几大块了,安卓APP开发,前端开发,后端开发,数据采集主板开发。

项目构想差不多了,接下来就是找开发的人了,小公司资源有限,很多东西没办法自己做,我们找了很多家公司,最后定了一家做光伏和智慧用电的公司。两套设备,一个平台,加上手机APP(桌面前端对方没资源,让我们自己解决)。定了四个月的开发周期,我作为该项目的负责人和产品经理,对方出人出力,于是项目就启动了。前期一切都很顺利,我出了需求文档,产品原型。和对方的工程师定义了后端和设备,设备和数据采集板的接口。安卓工程师开始开发(这里有个坑,这个安卓工程师是兼职的,立项之前对方并没有告诉我们),做了一个月,我们的一个客户出了新的工艺,可以同时施工两根桩,新的产品需要支持他的需求,于是我又对原型进行调整,原有的操作不变,增加一个页面。尽量减少对已开发功能的影响。又过了一个多月,这期间每个周末我都过去,看看他们进度怎么样,但是这个安卓工程师并没有提供一个测试版本给我,所以我只能看看界面。当时感觉还可以,功能交互都做得不错。硬件和服务器的初版都出来了,我前端桌面也写好了。于是我要求出一个测试版本联调。但是每次去联调总会遇到问题,这个人不把问题解决了他就不愿意做其他工作。一拖时间来到了八月中旬,终于出了第一版。拿过来一用我感觉完蛋了,由于安卓采用了前端框架,刚开始评估的时候性能没问题,现在数据刷新频率上来之后,体验很差,框架提供的打印方案也慢得没法用。另外内部需要计算的数据逻辑基本上都是错的,亏我前边几个周都在给他讲这个产品的逻辑,数据的逻辑。还写了那么多文档给他。估摸着他的重心都放在页面上了吧,悲哀。没办法,只能让他先调测试出来的问题。我去做打印的优化。来来回回快到国庆了,期间我把他用的前端框架学了,顺带把另一个比较简单的设备写完了,打印的方案实现了,APP设备部署的问题我也解决了。我发现问题并没有处理几个,项目已经延期了,没办法,我说你程序给我吧,我们一起调一下问题,加快一下进度。然而这哥们开始扯皮,既不愿意加快进度,也不愿意给我代码。国庆他顺带腿受伤了,回家养伤。代码一点进展都没有。到这个时候只能采取一些非技术手段解决问题了。不管怎样我最终拿到了代码,重写数据逻辑,优化数据渲染效果,集成我之前实现的打印框架,一个一个的处理他留下来的bug,手机app也不要他写了,自己写微信小程序替代,日日夜夜加班加点,终于到11月进入了测试阶段,然后同事组装设备。在20几号送到了客户现场。测到现在,基本上比较稳定,项目到此也差不多结束了,转入维护阶段。

这个项目总的来说难度不是太大,非技术方面主要就是怎么和人打交道,这个没什么好说的,主要是以诚待人,用心办事。技术方面主要遇到了几个大的问题:

    1. 服务端功能定义。这一块之前没有太多经验,我的需求并没有弄得太明确,后边写前端的时候要求后端加了不少接口。
    1. 安卓打印功能,这个网上基本上没有适合的参考资料,自己搞的方案。
    1. ionic性能优化,去掉不必要的渲染机制和不合逻辑的代码,内核优化。
    1. 安卓屏问题,由于是定制系统,部署的时候遇到了很多意想不到的问题,如以太网和4G不能同时使用。
    1. 安卓自带的webview问题,内存泄露,死机。这个问题差点导致项目失败,还好腾讯的X5内核挺好用的。

以上:随便放几张图
主设备

配套设备

桌面管理平台