QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

快手于冰:咱客户端工程师,还可以往哪个方向纵深?

  • 2021-07-13
  • 本文字数:2102 字

    阅读完需:约 7 分钟

快手于冰:咱客户端工程师,还可以往哪个方向纵深?

1、2019 年,于冰在一次演讲中提出了这样一个观点——5G 很可能不是革命,反而更像是一种催化剂,在 5G 的加持下,视频会像空气和水一样无处不在。 这句话得从两个角度理解。


2、从用户需求来看,图文到视频的升级是必然趋势。作为一种多媒体的载体,视频内容的信息量、丰富程度、可观看性和可消费性都是非常大的,给用户带来了全方位的沉浸感体验。再加上推荐算法的赋能,视频显然是一种体验更好的内容消费形式,如今的短视频大潮也印证了这一点。


3、从基础设施的进步来看,整个网络基础设施和移动端体验都在持续提升。包括千兆固网接入和 5G 的普及,移动端生产侧的拍摄制作能力、消费侧的清晰度和屏幕大小持续提升,这些与用户需求的转变是相辅相成的。


4、所以,无论通过平台海量数据,还是行业发展趋势都可以说明“视频会像空气和水一样无处不在”这个观点已经得到了验证,而这个趋势还将继续加速。不信的话,你看看头部互联网公司是不是都在玩视频、玩直播。


5、5G 加快落地,音视频产品越来越丰富,作为快手移动端和音视频技术负责人,于冰总结了他看到的移动开发新趋势。大概有以下几个方面:

  • 更多的业务场景:社交、电商、教育、办公……短视频生产、短视频消费、直播、RTC 场景明显增多。

  • 更深的技术栈:在 5G+AI 时代,随着带宽的提升,音视频成为主要内容载体,AI 带来了更多可能性。移动端需要对内容创作和消费体验做出更好的支持,会涉及到多种技术栈,比如网络、缓存、AI 推理引擎、图形引擎、底层编译器、OS 级别的优化等,再加上移动硬件设备的持续升级,移动端 NPU 和高色域高帧率屏幕的逐步普及,会带来技术百花齐放的局面。

  • 更大的基础资源压力:假设要在移动端播放一个 60fps/1080p 的视频,它每秒钟会加载 60 张图,这个数据量是非常庞大的,而这些图还要被高速处理,对硬件和 GPU 的渲染能力都有更高的要求。

  • 更高的算法复杂度:除了交互能力,很多在过去只能在 PC 端才能做到的内容生产制作的能力,比如视频采集 / 剪辑、AI 特效等等,如今在移动端也能实现。“端智能 + 端云一体”趋势越加明显。由于用户的机型不同,既要保证能为高端机提供更好的效果,又要保证低端机的体验流畅,需要可伸缩的能力,这让生产侧 AI 和音视频处理的算法复杂度进一步提升。

  • 更快的迭代速度:行业竞争激烈,业务需要快速迭代部署上线,这推动着移动原生开发和前端开发加速融合,向着大前端演进。


6、 除了以上几点,还有一个趋势是,随着国内流量红利见顶,越来越多的企业开始布局海外,快手也不例外。他们的主要战场在东南亚和南美,这些地方都有一个统一特征——机型更低端,网络情况更复杂、基础设施更落后,自然,移动开发面临的挑战也更大。


7、快手不只是一个用来看视频的简单 App,它更是一个既有广度又有深度的超级 App,业务非常复杂。


8、从技术的广度来说,为应对这些变化,快手移动端的技术栈覆盖数据、动态化引擎、网络、图像、音视频、传输、渲染引擎等等。举个例子,这里面单是“网络”这一项涵盖的范围就特别广:API、视频和图片的分发和下载、域名解析、缓存(预加载策略)、视频上传等等,如果从全局看,广度可想而知。


9、再从技术的深度来说,快手需要做到非常极致的性能优化和稳定性。比如,快手的视频压缩算法要用汇编来加速,视频的解码需要适配硬件的能力,AI 推理引擎的加速也需要深耕。再比如,特效的渲染、AI 的推理都需要很高的算力,在做端智能的时候,还需要在双端(iOS 和安卓)流畅运行,这就要深入到操作系统的内核去研究。


10、快手的移动端都有哪些特点或者挑战呢?挑战就是机遇,从这个视角看,你也能想清楚未来行业的横向和纵向发展趋势。


11、一是上层业务复杂,大广场小生态。 快手不仅涵盖了短视频的生产消费,还有直播(电商、教育、游戏)、小程序、长视频、社交等业务,是用户心智非常丰富的产品。所以为了承接各种各样的业务形态,快手通过业务分层,为每一层都适配了不同的动态化技术。核心业务短视频、直播等业务,会倾向于用 Native 方案来做;拓展业务,比如电商、运营等,会用动态化的方式来做;再往上一层的生态业务,快手倾向于用小程序为用户提供更全面的服务。这种不同的动态化方式可以让快手核心安装包比较小,业务生态拓展、业务的迭代速度也会非常快。


12、二是下层音视频和 AI 对性能、双端适配等都要求很高。 快手是一个以音视频生产和消费为核心,以 AI 能力为辅助的 APP,底层对双端适配的要求非常高。所以快手在上层用动态化技术实现业务的快速迭代,但在底层主要用的还主要是 C++,甚至会用汇编去写。


13、三是需要高效迭代。 复杂和海量业务下,快手需要保证每周发版频率,甚至在一些重大活动时,要做到随时发版。


14、四是架构精益求精。 快手有三亿日活,用户使用时长也很高,对崩溃率的容忍度很低,团队就要有能力支持大规模的团队并行开发,所以要做解耦和隔离,做模块化、组件化。


15、在刚刚结束的 GMTC 上,于冰有分享快手的移动端技术全景图,从这图里,你也能看到些许的方向和趋势。


16、7 月 14 日(周三)晚上 8 点,我会在视频号连麦于冰老师,没有广告,没有鸡汤,咱们实实在在,就聊聊客户端,聊聊技术趋势,聊聊选择和努力。如果你感兴趣的话,可以预约。



2021-07-13 16:464261

评论 2 条评论

发布
暂无评论
发现更多内容

ESP32-C3入门教程 基础篇(三、UART模块 — 与Enocean无线模块串口通信)

矜辰所致

ESP32-C3 9月月更 UART

【数据结构】五分钟带你了解及自定义有向图

迷彩

数据结构 算法 无向图 9月月更 有向图

2022-09-20:以下go语言代码输出什么?A:8 8;B:8 16;C:16 16;D:16 8。 package main import ( “unsafe“ “fmt“ )

福大大架构师每日一题

golang 福大大 选择题

在windows电脑上配置kubectl远程操作kubernetes

程序员欣宸

Kubernetes 9月月更

通过爬虫爬取一些图片

吉师职业混子

9月月更

2022-09-19:给定字符串 S and T,找出 S 中最短的(连续)子串 W ,使得 T 是 W 的 子序列 。 如果 S 中没有窗口可以包含 T 中的所有字符,返回空字符串 ““。 如果有不

福大大架构师每日一题

算法 rust 福大大

Python教程之Python简介

芯动大师

编程语言 9月月更 Python简介

挑战30天学完Python:Day3夯实基础-布尔值和运算符

MegaQi

9月月更 挑战30天学完Python

Chrome操作指南——入门篇(五)Snippets

Augus

Chrome开发者工具 9月月更

面对全新的编程语言,这些思路可以帮助你察觉漏洞

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞利用

面试突击85:为什么事务@Transactional会失效?

王磊

Java 面试

PLG SaaS 产品 Figma 商业模式拆解

程序员泥瓦匠

SaaS

Qt|ListWidget控件总结

中国好公民st

List qt 9月月更

4 分钟优化 Fetch 函数写法~

掘金安东尼

前端 9月月更

【云原生 | 从零开始学Kubernetes】一、kubernetes到底是个啥

泡泡

云计算 云原生 k8s 9月月更

概述构建应用智能运维系统的核心能力

阿泽🧸

智能运维 9月月更

开发者有话说|时间过得真快,我也是一个“奔三”的人了

武师叔

个人成长

《简单记个笔记》之部分CSS选择器介绍

吉师职业混子

9月月更

【字符串函数内功修炼】strlen + strstr + strtok + strerror(三)

Albert Edison

C语言 9月月更 strlen strstr strtok

Python 教程之变量

芯动大师

变量 9月月更 Python语法

Python语法之数据类型

芯动大师

Python 数据类型 9月月更

ESP32-C3入门教程 基础篇(四、I2C总线 — 与SHT21温湿度传感器通讯)

矜辰所致

I2C I2C协议 ESP32-C3 9月月更

Web3.0杂谈-#001(47/100)

hackstoic

Web3.0

C++学习---cstdio的源码学习分析04-创建临时文件函数tmpfile

桑榆

c++ 源码阅读 9月月更

《简单记个笔记》之表单标签加CSS选择器

吉师职业混子

9月月更

史上最详细vue的入门基础

楠羽

Vue 笔记 9月月更

[极致用户体验] 多页面应用里,「网页内返回」按钮,何时用 history.back 何时用 replaceState?

HullQin

CSS JavaScript html 前端 9月月更

开发者有话说|情分 or 本分

卷卷龙

个人成长 职场 PUA

监控系统的阶段建设

穿过生命散发芬芳

监控系统 9月月更

快手于冰:咱客户端工程师,还可以往哪个方向纵深?_移动_邓艳琴_InfoQ精选文章