整理下工作中遇到特殊的业务、难点解决

最近被面说说工作亮点,我当时是一时懵逼,瞬间脑袋空白,做得东西忘得七七八八,这次要稍微整理下自己工作遇到相对比较大问题及解决方法,免得二次还是出现这个情况:

 

1.大图浏览,后台list加载;

背景:

显示的时刻列表如上,当前列表是每天最多10张图片信息,当点击某一张图片进入大图浏览时,要按照顺序(按照时刻从该点开始进行所有的图片浏览);进入大图时,只有这天的10张图片信息;

实现的所有图片步骤是:

1)根据点击的图片所属的日期及这天的索引,在时间轴(从服务器拉去的时间轴,有日期对应这天的数量的列表),计算这张照片在总的时刻文件表的索引,生成占位的总的列表;

2)后续根据请求页的开始索引计算所需要的请求页,拿到响应数据后,更新总表;

 

2.视频播放优化

1)系统播放器+(vlc播放器->ijk播放器);

2)系统播放器使用硬解,个别编码格式视频出现黑屏,花屏现象;

3)开始选择vlc播放器,但是存在个别视频播放没有声音,后续选择ijk播放器,因为也有个别视频比如4k的播放效果差,因此保留系统播放器作为备份,在播放界面可以自由切换;

4)个别盒子发现ijk播放器无法自动旋转横拍的视频导致播放是倒转的,surfaceView没有相关接口倒转,使用播放使用textureView替换surfaceView。

3.扫码登录优化

1)登录界面二维码,使用手机端扫码点击的登录,TV端轮询登录结果的token,然后token换个人云session及家庭云session、获取空间列表,选择一个跳转主页;

2)轮询间隔及请求timeout优化,轮询的间隔缩短及请求timeout减少;

3)登录流程优化:登录仅仅处理登录事务,token换session等其他操作延后后面流程处理,这样在界面上让用户有明显的感知已成功登录;

4)api接口合并:之前流程是拿token做两次请求分别拿个人云和家庭云session,现在合并改为一次api请求下发个人云和家庭云的session。

5)登录接口测试:添加api接口测试菜单,用户端测试登录接口访问情况以便排查问题。

 

4.打包插件开发(热更新基准包多渠道打包)

1)因为使用了tinker的热更新,为了好维护只保持一个补丁包,因此多渠道的基准包的资源及dex均需要不能变动,否则安装包和补丁包合成失败;

2)需要修改AndroidManifest.xml的meta-data信息,开发插件打包插件,可以通过在Android Studio的右边task双击对应的任务即可启动,配置信息在build.gradle 加载对应插件时配置,如原始的基准安装包apk,生成存放路径,apktool路径等;

3)流程:

获取配置信息,拿到productFlavors的产品等信息,使用apktool反编译提取文本形式的AndroidManifest.xml;

使用xml工具读取并根据配置修改meta-data;

使用apktool将修改后的AndroidManifest.xml和原来反编译的资源再编译出apk,使用7z解压apk,提取二进制AndroidManifest.xml替换到源apk的AndroidManifest.xml

删除源apk的META-INF的签名信息,使用jarsigner进行V1签名;

进行对齐操作即可得到修改配置信息且已经签名的apk。

 

5.诊断工具开发

TV盒子在用户侧问题排查定位比较困难,因为开发诊断工具:

1)大图加载慢的问题

特殊按键可屏显图片信息及加载情况,如图片id及名字,网络拉去数据时长,加载时长等

只需要用户拍照图片发过来即可定位;

2)视频无法播放

可能是多个情况,网络不通,格式播放不支持(可切换播放器解决);

网络不通情况下,通过组合按键跳转下载列表,如下载失败,可以点击进入看到具体的错误信息,用户只需拍照过来既可以定位解决。

 

6.插件功能开发

实现的中间件功能:可与平台和手机端交互,手机端可以管理路由上插入的u盘文件管理,控制远程任务离线下载到路由u盘上。

1) 监控外部存储器的文件夹/文件变动,并更新到数据库;

2) 指定手机端发现插件设备及交互协议。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值