- 博客(12)
- 收藏
- 关注
原创 WebRTC Native开发实践
这种结构在用户数量不多的时候还能正常运行,但是每增加一个用户,其他所有用户都会增加一路上传和一路下载,目前常见的互联网接入方式都是上传宽带比下载带宽低很多,所以上传很快就会出现带宽不够的情况。图上可以看到每个用户都只有一路和服务器的连接,用户发送和接收数据,即每个用户都只有一路上传和一路下载,有服务器负责把多个用户的音频和视频合成为一路音视频后下发给每个用户。2、SFU 结构:参与通话的每个用户都把音视频数据发送给媒体服务器,并从媒体服务器接收其他所有用户的音视频数据,这些接收的音视频数据都是各自独立的;
2024-03-21 14:53:33
1705
原创 Android 7 大设计原则
产生代码差的原因,有两方面,第一方面是外部原因,第二方面是内部原因。外部原因主要有:项目排期急,没有多少时间去设计;资源短缺,人手不够,只能怎么快怎么来;紧急问题修复,临时方案快速处理……。内部原因主要有:自我要求不高;无反馈通道;而解决代码差的根因主要是方法有三个:领域建模、设计原则、设计模式分析阶段:当拿到一个需求时,先不要着急想着怎么把这个功能实现,这种很容易陷入事务脚本的模式。分析什么呢?需要分析需求的目的是什么、完成该功能需要哪些实体承担,这一步核心是找实体。
2023-05-16 15:32:33
197
原创 Glide源码执行流程
阅读源码技巧:抽丝剥茧、点到为止。应该认准一个功能点,然后去分析这个功能点是如何实现的。但只要去追寻主体的实现逻辑即可,千万不要试图去搞懂每一行代码都是什么意思,那样很容易陷入思维黑洞当中,而且越陷越深。因为这些庞大的系统都不是一个人写出来的,每一行代码都想搞明白,就会感觉自己是在盲人摸象,永远也研究不透。如果只是去分析主体的实现逻辑,那么就比较明确的目的性,阅读源码会更加轻松,也更加有成效。
2023-04-24 17:27:53
129
转载 Glide的基本用法
加载图片Glide.with(this).load(url).into(imageView);调用Glide.with()方法用于创建一个加载图片的实例。with()方法可以接收Context、Activity、Fragment类型的参数,选择范围广,with()方法中传入的实例会决定Glide加载图片的生命周期,如果传入的是Activity或者Fragment的实例,那么当这个Activity或Fragment被销毁的时候,图片也会停止;如果传入的是ApplicationContext,那么..
2021-12-27 15:25:22
3364
原创 Activity四种启动模式及onNewIntent()方法
1、Standard:是活动默认的启动模式,在不进行显式指定的情况下,所有活动都会自动使用这种启动模式。Android中是使用返回栈来管理活动的,在standard模式下每当启动一个新的活动
2021-12-27 14:54:37
1752
转载 Glide&Picasso图片加载库对比
导入库Picasso导入库:dependencies { compile 'com.squareup.picasso:picasso:2.5.1'}Glide导入库:dependencies { compile 'com.github.bumptech.glide:glide:3.5.2' compile 'com.android.support:support-v4:22.0.0'}Glide需要依赖Support Library v4.基础使用..
2021-12-15 20:32:55
233
转载 目标检测一系列算法
参考文章来源:https://cloud.tencent.com/developer/news/281788一、R-CNNR-CNN的简要步骤如下(1) 输入测试图像(2) 利用选择性搜索Selective Search算法在图像中从下到上提取2000个左右的可能包含物体的候选区域Region Proposal(3) 因为取出的区域大小各自不同,所以需要将每个Region Proposal缩放(warp)成统一的227x227的大小并输入到CNN,将CNN的fc7层的输出作为特征(4
2021-02-23 18:55:49
366
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人