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

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

帝都某高端小区,封闭局域网,做一个可视对讲+门禁的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年底的牢骚。。

android 趟坑记的更多相关文章

  1. rocketmq搭建趟坑记

    这个坑对小白来讲可能要趟很久才能过,我就是这样~~明明很简单的配置,搞了半天 我用的是rocketmq4.1.0,配置了jvm参数,都能正常启动,且能在线上运行demo,但是线下就是连不上 在conf ...

  2. Android MonoGame坑记

    1.Content 加载声音API错误: 2.TouchPanel.GetState()属于抢占式的,用一次后面不能继续使用,否则状态尚属第一次: 3.TouchPanel 坐标来自于硬件本身: 4. ...

  3. Android项目开发填坑记-Fragment的onBackPressed

    Github版 CSDN版 知识背景 Fragment在当前的Android开发中,有两种引用方式,一个是 Android 3.0 时加入的,一个是supportV4包中的.这里简称为Fragment ...

  4. Android项目开发填坑记-Fragment的onAttach

    背景 现在Android开发多使用一个Activity管理多个Fragment进行开发,不免需要两者相互传递数据,一般是给Fragment添加回调接口,让Activity继承并实现. 回调接口一般都写 ...

  5. Android项目开发填坑记-so文件引发的攻坚战

    故事的最初 我负责的项目A要求有播放在线视频的功能,当时从别人的聊天记录的一瞥中发现百度有相关的SDK,当时找到的是Baidu-T5Player-SDK-Android-1.4s,项目中Demo的so ...

  6. 【踩坑记】从HybridApp到ReactNative

    前言 随着移动互联网的兴起,Webapp开始大行其道.大概在15年下半年的时候我接触到了HybridApp.因为当时还没毕业嘛,所以并不清楚自己未来的方向,所以就投入了HybridApp的怀抱. Hy ...

  7. UiAutomator2.0升级填坑记

    UiAutomator2.0升级填坑记 SkySeraph May. 28th 2017 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点:www.sk ...

  8. 浅谈html5 video 移动端填坑记

    这篇文章主要介绍了浅谈html5 video 移动端填坑记,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 本文介绍了html5 video 移动端填坑记,分享给大家,具体 ...

  9. Appium+python自动化(十三)- 输入中文 - 一次填坑记(超详解)

    简介 无论你在哪里,在做什么都会遇到很多坑,这些坑有些事别人挖的,有些是自己挖的.别人挖的叫坑人,自己挖的叫自杀,儿子挖的叫坑爹.因此在做app自动化道路上也不会是一帆风顺的,你会踩很多坑,这些坑和你 ...

随机推荐

  1. 查看Linux服务器是否是虚拟机

    dmidecode -s system-product-name 物理机: [root@swnode1]# dmidecode -s system-product-name I840-GS 虚拟机: ...

  2. ldap集成nexus

    nexus版本:2.14.4 添加nexus支持ldap认证: 管理员登录,点击 Administration --> Server -->Security Settings,将 OSS ...

  3. 【4opencv】CLR基本原理和如何运用于GOCW

    GOCW的重点和难点就在于Csharp调用OpenCV,其中的桥梁就是CLR,当然我们也有其他方法,但是CLR是一个比较新的.比较可靠的.关键是能用的桥梁.这里关于CLR的基本原理知识.如何用于GOC ...

  4. Git本地分支和远程分支关联

    转载:https://blog.csdn.net/cherishhere/article/details/52606884 转载:https://blog.zengrong.net/post/1746 ...

  5. Google Protocol Buffer在vs2010下配置

    1.从这里下载protobuf-2.6.1.tar.gz到桌面,并解压,解压后的文件夹为protobuf-2.6.1.(我的桌面为C:\Users\mcl\Desktop) 2 .进入文件夹proto ...

  6. Python3 tkinter基础 Canvas create_rectangle 画虚边的矩形 create_oval 画椭圆形 圆形

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  7. Win10 快捷命令收集

    桌面相关 Win+D:显示桌面 Win+Tab:虚拟桌面切换器 Win+Ctrl+D 新建桌面 Win+Ctrl+左/右 :移动虚拟桌面 Win+m :最小化窗口 Win键 + Ctrl + F4 关 ...

  8. 【Spring Security】六、自定义认证处理的过滤器

    这里接着上一章的自定义过滤器,这里主要的是配置自定义认证处理的过滤器,并加入到FilterChain的过程.在我们自己不在xml做特殊的配置情况下,security默认的做认证处理的过滤器为Usern ...

  9. P3273 [SCOI2011]棘手的操作

    吐槽 上午风浔凌julao问我的神题 操作又多又毒瘤又棘手... 然后bzoj题号正好是2333,2333333333 思路 貌似只有我是这么写的 线段树合并, 每个线段树存每个连通块的信息,维护点的 ...

  10. 使用explain来分析SQL语句实现优化SQL语句

    用法:explain sql 作用:用于分析sql语句 mysql> explain select * from quser_1 where loginemail = "quctest ...