android 趟坑记

时间:2024-01-20 21:47:09

又是一个伤感的故事,但阿古好像已经习以为常了。

大半年的辛苦又泡汤了,故事是这样。

帝都某高端小区,封闭局域网,做一个可视对讲+门禁的APP,之前那一版因为使用了商业代码,又不想花钱,于是找阿古换一个webrtc的对讲方案,

经过1个月的摸索,App终于可以跑了,试用好像没问题,几天后,用户抱怨视频总是卡断。

日,找原因,好像webrtc底层的摄像头资源没释放正确,加了异常重启处理,服务器端websocket加一分钟自动清token,数据库存储状态改成服务器端node存状态加快相应速度,继续试用。

1个月后,用户再抱怨,某一台中控经常崩溃,技术狗的末日从此来临,换主板,刷机,换显示屏,喇叭,网线。

呵呵,主板安卓系统版本不兼容,修改App,搞定,继续试。

1个月后,用户购买一批新安卓平板,App又猝,继续调优,发现webrtc跨网段太多,呼不通?这是什么鬼?webrtc真是搞死人。

做平板性能监控,擦,网速只有10几K怎么通话稳定,好像最大的bug被挖出了。

又是一个月,用户方大boss发话了,要结账?我们要又稳定又清晰的效果,否则别想结账。

狗都被你虐死了,MMP。

webrtc网速不稳定就会断,为了适应这垃圾网络环境(why),换方案,找了网上的某商业版,人家也是基于webrtc的改造版,算了,技术狗最讨厌承认技不如人,

心里想,要不是老子没时间陪你玩就自己搞一套了,哼。

又是几个不眠之夜,集成新视频方案,老版webrtc全替换。

坑如下:

1. 因为都是基于webrtc,老版的引用,jar,so文件全删掉,删干净

2. 新版本的lib包,so文件别忘了copy

3. 商业代码的demo是将监听写在了BaseActivity,如果和老版本代码冲突,只能将BaseActivity的功能分解到具体Activity里,视频对讲对象放在Application做成单例

4. 监听没加好是导致接收不到视频呼叫的原因,同上,demo里继承了BaseActivity,自己用如果没继承BaseActivity,要自己加在业务Activity里。

5. 如果想使用demo的ui效果,layout,资源文件要copy全,不copy全会导致百思不得其解的编译错误

6. compileSdkVersion 25 targetSdkVersion  25  compile 'com.android.support:appcompat-v7:25.3.1' 版本要一致 ,如果编译说找不到类库,就翻个墙试试看,或者换其他版本

7. AndroidManifest.xml 改加的uses-permission别忘了加,新加的activity别忘了定义

以为这就结束了?NO

windows服务器全换成linux,视频服务要供应商搭,除此之外, node服务,mysql,数据迁徙,自启动脚本重新配。

用户:伦家还没测试哦,有问题你啥都要管哦,吃定你咯。

我去年买了个表!!!

以上是一个android菜鸟的来自2018年底的牢骚。。