Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2020-01-06:在开发过程中你遇到过的最大的难题是什么?如何解决的? #227

Open
Moosphan opened this issue Jan 6, 2020 · 14 comments

Comments

@Moosphan
Copy link
Owner

Moosphan commented Jan 6, 2020

No description provided.

@DaveBoy
Copy link

DaveBoy commented Jan 6, 2020

总有傻逼面试官喜欢问这个问题,已解决的问题都不是难题 没解决的问题都是难题

@ruichaoqun
Copy link

面试遇见过N次问这个问题的,每次都胡乱打的,有没有比较好的方式?

@life90player
Copy link

遇到最大的难题,就是领导只管眼睛看到的东西,认为所有bug都是前端的,无缘无故指派到前端解决,然后前端就各种分析数据什么来排查错误。挺费精力的

@zhaoerlei1989
Copy link

线上出问题你在那傻站着

@ryanlijianchang
Copy link

说一个最近遇到的吧,最近在做一个人脸打卡的项目,主要负责客户端的部分,由于设备是5.0以上,一开始直接用Camera1的api来写了一个预览视频流的demo,最后能够顺利展示出来,但是看到全篇代码所有引用了Camera类的地方都划了线(提示过时了),按照提示所说,需要替换成Camera2的api,然后我就上网搜索了相关demo,使用Camera2重写了一次demo的代码,然后兴高采烈地安装到真机调试,最后发现体验效果极差,预览视频流非常卡顿,然后我就分析问题。

首先怀疑是不是使用姿势不对,所以我就认认真真看了一遍官方demo-Camera2Basic,由于它默认不开启预览视图,所以我没法确信是我的使用姿势问题还是怎么,所以我没有死心。

然后通过google查看了类似问题的答案,发现有的人说是ImageRender的format格式不对,所以我就去了解了一遍图片相关的格式,最后用了很多人说的YUV格式,还是发现会卡顿。

直到后面,在某论坛看到了这篇文章《Android设备对新Camera2 API的支持问题:以华为M2为例》才发现原来不是我的使用问题,而是Camera2对很多API21以上的手机的支持程度都不高,最后才豁然开朗,放弃了Camera2,使用回来Camera1。

兜兜转转,又回到了原点,目前在Androidx里面提供了CameraX的API,会更友好地适配不同机型。

@manondidi
Copy link

那我也说个吧,因为买了腾讯云的视频服务,所以必须要用腾讯云播放器。因为只有用它的播放器才能用腾讯云的防盗链等其他功能。腾讯云的demo是在一个页面上播放视频,而我在此基础上用腾讯云播放器的底层,上层自己封装写了一套播放器组件,特别是针对在列表上的视频播放,接入超级简单。用户反馈说在其他应用播放音乐的情况下,但我们的feed流上看视频,视频结束后音乐没有自动播放。后来深入源码去分析,是腾讯云播放器把音频焦点抢断,而不是临时申请,知道问题好办了,去腾讯云提工单,结果腾讯非常傲娇不肯修复。最后我从混淆过的代码中把申请焦点的代码找到,然后反编译,用汇编去修改代码,最后编译成aar 解决了这个问题。

@Alex-Cin
Copy link

楼上诸位, 不要抱怨, 谩骂拿不到offer 的;
1.. recyclerView 卡顿(bindHolder 有耗时, 子view测量-绘制事件长, 有大图);
2.. 某看图页面, 类似于PDF, 解决大图, 解决占内存, 用缓存队列, 使用预加载, 某种播放列表也有类似问题;
3.. 页面等待时间较长, 肉眼可见, 网络preLoader, 并解决页面重启的preLoader问题, 根视图分步渲染, 减少用户等待;
4.. 排查页面卡顿, 列表滑动卡顿, 渲染卡顿. 首先采集用户设备性能, 在界定卡顿临界值, 最后定位问题,上报, 安排解决(使用原生api + 字节码插装);

求问, 如何减少冷启动时间, 5.0以下多dex优化, 3年之后, 都没有5.0以下了, 5.0以上还怎么优化.

@liangyx
Copy link

liangyx commented Feb 28, 2020

这个问题其实面试官给你炫技的机会!如果你真的深入参与过复杂的app开发,肯定会碰到一些比较棘手的问题。你需要把问题的症状描述清楚,然后告诉面试官自己如何一步一步找到root cause,最后给出解决方案。

@Ulez
Copy link

Ulez commented Dec 28, 2020

那我也说个吧,因为买了腾讯云的视频服务,所以必须要用腾讯云播放器。因为只有用它的播放器才能用腾讯云的防盗链等其他功能。腾讯云的demo是在一个页面上播放视频,而我在此基础上用腾讯云播放器的底层,上层自己封装写了一套播放器组件,特别是针对在列表上的视频播放,接入超级简单。用户反馈说在其他应用播放音乐的情况下,但我们的feed流上看视频,视频结束后音乐没有自动播放。后来深入源码去分析,是腾讯云播放器把音频焦点抢断,而不是临时申请,知道问题好办了,去腾讯云提工单,结果腾讯非常傲娇不肯修复。最后我从混淆过的代码中把申请焦点的代码找到,然后反编译,用汇编去修改代码,最后编译成aar 解决了这个问题。

那可以用反射或者hook的方式达到相同的效果吗?

@BeforeFuture
Copy link

那我也说个吧,因为买了腾讯云的视频服务,所以必须要用腾讯云播放器。因为只有用它的播放器才能用腾讯云的防盗链等其他功能。腾讯云的demo是在一个页面上播放视频,而我在此基础上用腾讯云播放器的底层,上层自己封装写了一套播放器组件,特别是针对在列表上的视频播放,接入超级简单。用户反馈说在其他应用播放音乐的情况下,但我们的feed流上看视频,视频结束后音乐没有自动播放。后来深入源码去分析,是腾讯云播放器把音频焦点抢断,而不是临时申请,知道问题好办了,去腾讯云提工单,结果腾讯非常傲娇不肯修复。最后我从混淆过的代码中把申请焦点的代码找到,然后反编译,用汇编去修改代码,最后编译成aar 解决了这个问题。

反编译我会,但是。。汇编修改牛皮!!

@DaveBoy
Copy link

DaveBoy commented Dec 28, 2020

那我也说个吧,因为买了腾讯云的视频服务,所以必须要用腾讯云播放器。因为只有用它的播放器才能用腾讯云的防盗链等其他功能。腾讯云的demo是在一个页面上播放视频,而我在此基础上用腾讯云播放器的底层,上层自己封装写了一套播放器组件,特别是针对在列表上的视频播放,接入超级简单。用户反馈说在其他应用播放音乐的情况下,但我们的feed流上看视频,视频结束后音乐没有自动播放。后来深入源码去分析,是腾讯云播放器把音频焦点抢断,而不是临时申请,知道问题好办了,去腾讯云提工单,结果腾讯非常傲娇不肯修复。最后我从混淆过的代码中把申请焦点的代码找到,然后反编译,用汇编去修改代码,最后编译成aar 解决了这个问题。

那可以用反射或者hook的方式达到相同的效果吗?

https://juejin.cn/post/6911224177051566093 我刚写了一下,应该可以

@vastsea88
Copy link

遇到最大的困难都是面试官问的问题,没有解决

@Sounean
Copy link

Sounean commented Feb 10, 2022

那我也说个能吧,因为买了腾讯云的视频服务,所以必须要用腾讯云播放器。因为只有用它的播放器才能使用腾讯云的防盗链等功能。腾讯云的demo是在一个上播放,视频,而这个基础上写的,而用户上一层云播放器是我特别在播放器上播放的组件,针对访问列表上的播放器,超级简单的反馈说在其他应用播放音乐的情况下,但我们的饲料流上看去视频,视频结束后音乐没有自动播放。随后从源头分析,是腾讯云播放器把音频抢断,而不是临时申请,知道问题好办了,去云提工去,非常非常非常娇娇不修改修复。最后我从一个直接返回的结果公开了一个直接的答案,直接将代码中把申请代码找到,找到,用组合代码,最后编译成这个问题。

tql

@liukepeng
Copy link

救命啊,想不出来

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests