android 趟坑记
又是一个伤感的故事,但阿古好像已经习以为常了。
大半年的辛苦又泡汤了,故事是这样。
帝都某高端小区,封闭局域网,做一个可视对讲+门禁的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 趟坑记的更多相关文章
- rocketmq搭建趟坑记
这个坑对小白来讲可能要趟很久才能过,我就是这样~~明明很简单的配置,搞了半天 我用的是rocketmq4.1.0,配置了jvm参数,都能正常启动,且能在线上运行demo,但是线下就是连不上 在conf ...
- Android MonoGame坑记
1.Content 加载声音API错误: 2.TouchPanel.GetState()属于抢占式的,用一次后面不能继续使用,否则状态尚属第一次: 3.TouchPanel 坐标来自于硬件本身: 4. ...
- Android项目开发填坑记-Fragment的onBackPressed
Github版 CSDN版 知识背景 Fragment在当前的Android开发中,有两种引用方式,一个是 Android 3.0 时加入的,一个是supportV4包中的.这里简称为Fragment ...
- Android项目开发填坑记-Fragment的onAttach
背景 现在Android开发多使用一个Activity管理多个Fragment进行开发,不免需要两者相互传递数据,一般是给Fragment添加回调接口,让Activity继承并实现. 回调接口一般都写 ...
- Android项目开发填坑记-so文件引发的攻坚战
故事的最初 我负责的项目A要求有播放在线视频的功能,当时从别人的聊天记录的一瞥中发现百度有相关的SDK,当时找到的是Baidu-T5Player-SDK-Android-1.4s,项目中Demo的so ...
- 【踩坑记】从HybridApp到ReactNative
前言 随着移动互联网的兴起,Webapp开始大行其道.大概在15年下半年的时候我接触到了HybridApp.因为当时还没毕业嘛,所以并不清楚自己未来的方向,所以就投入了HybridApp的怀抱. Hy ...
- UiAutomator2.0升级填坑记
UiAutomator2.0升级填坑记 SkySeraph May. 28th 2017 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点:www.sk ...
- 浅谈html5 video 移动端填坑记
这篇文章主要介绍了浅谈html5 video 移动端填坑记,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 本文介绍了html5 video 移动端填坑记,分享给大家,具体 ...
- Appium+python自动化(十三)- 输入中文 - 一次填坑记(超详解)
简介 无论你在哪里,在做什么都会遇到很多坑,这些坑有些事别人挖的,有些是自己挖的.别人挖的叫坑人,自己挖的叫自杀,儿子挖的叫坑爹.因此在做app自动化道路上也不会是一帆风顺的,你会踩很多坑,这些坑和你 ...
随机推荐
- web site optimization
@ 如果有很多图片(比如web服务器的页面上有多个小图片),通常是没有必要记录文件的访问时间的,这样就可以减少写磁盘的I/O,这个要如何配置 @ 首先,修改文件系统的配置文件/etc/fstab ,然 ...
- centos 7.2 安装gitlab汉化
####################你如果搜到我的这个博客,你的系统得是centos 7的 80端口没有占用. QQ:1394466404 这个博客维护1年 #### 多地方第一个是百度 ...
- batchGetAnchorLevel(dubbo接口)
一.编写脚本前的准备工作 1.安装idea,安装本地maven库,并在idea里面配置maven 2.导入git源码(目的在于下载所依赖的基础包)-->File-new-Project from ...
- python --- 13 内置函数
内置函数 思维导图 1.作用域相关 locals() 返回当前作用域中的名字 globals() 返回全局作用域中的名字 2.迭代器相关 range() 生成数据 next() ...
- 【做题】agc003E - Sequential operations on Sequence——经典结论
题意:有一个序列,初始是从\(1\)到\(n\)的\(n\)个数.有\(q\)次操作,每次操作给出\(q_i\),把当前的序列重复无数遍,然后截取最前面的\(q_i\)个元素作为新序列.要求输出完成所 ...
- 安装ubuntu的坑&RHEL7配置
1.需要其他设置->分区,分区需要有/根目录分区和swap空间,后者文件系统类型选择swap,其他都是ext4 2.普通配置电脑,安装16.04.5 LTS,不要安装最新的,安装重启后卡在那里, ...
- fhqtreap初探
介绍 fhqtreap为利用分裂和合并来满足平衡树的性质,不需要旋转操作的一种平衡树. 并且利用函数式编程可以极大的简化代码量. (题目是抄唐神的来着) 核心操作 (均为按位置分裂合并) struct ...
- p1110 报表统计(FHQ-TREAP/TREAP)
平衡树的裸题,操作都相当简单 写了一个FHQ,但是奈何常数太大,实在过不去 最后写了一个Treap开O2水过 TREAP代码 #include <cstdio> #include < ...
- 题解——loj6280 数列分块入门4 (分块)
分块维护一个区间和 然后记得更新的时候左边角块的tag不要打错到右边角块 #include <cstdio> #include <algorithm> #include < ...
- (转) 机器学习很有趣Part6:怎样使用深度学习进行语音识别
本文转自:http://www.jiqizhixin.com/article/2321 机器学习很有趣Part6:怎样使用深度学习进行语音识别 2017-02-19 13:20:47 机器学习 ...