首页
学习
活动
专区
工具
TVP
发布

QQ音乐技术团队的专栏

专栏作者
149
文章
476000
阅读量
302
订阅数
Vue打包优化之code spliting
前言 在http1的时代,比较常见的一种性能优化就是合并http的请求数量,通常我们会把许多js代码合并在一起,但是如果一个js包体积特别大的话对于性能提升来说就有点矫枉过正了。而如果我们对所有的代码进行合理的拆分,将首屏和非首屏的代码进行剥离,将业务代码和基础库代码进行拆分,在需要某段代码的时候再加载它,下次若再需要用则从缓存中读取,一来可以更好地使用浏览器缓存,再者就是可以提高首屏加载速度,很好提升用户的体验。 核心思想 业务代码和基础库的分离 这个其实很好理解,业务代码通常更新迭代很频繁,而基础库通常
QQ音乐技术团队
2023-03-01
2K0
大前端开发中的路由管理之五:Flutter篇
        前面大家了解了Web和Native端的路由管理,这篇文章出场的是大前端领域备受开发者喜欢的新秀Flutter。         Flutter作为一款跨平台UI框架,借鉴了React(Web开发框架)的响应式的UI框架设计思想等。在Flutter中,一切皆是Widget(组件),其中StatefulWidget(有状态的组件)和React中的组件类似,可以通过数据变化去手动更新视图,Flutter路由管理实现的核心组件Navigator就是这样的一个StatefulWidget。 1、认
QQ音乐技术团队
2021-11-18
2.1K0
大前端开发中的路由管理之四:iOS篇
1、iOS上的页面展示和逻辑 1.1 iOS的MVC设计模式         在介绍iOS的页面展示之前,我们需要先知道iOS应用的运行逻辑和设计模式。MVC即Model,View,Controller(模型,视图,控制器)。 View上展示的东西,由Model来定义 View上展示的逻辑,由Controller来控制 Controller同样负责初始化Model,和传递Model的信息给View         用户在View层中所进行的创建或修改数据的操作,通过Controller对象传达出去,最
QQ音乐技术团队
2021-11-15
1.8K0
大前端开发中的路由管理之二:web篇
1、Web路由需要实现的目标         上一篇文章中我们谈到了SPA(Single-page application)的出现,但SPA的应用有个需要解决的问题,就是浏览器只加载记录了一个html,所以当刷新浏览器时js会重新执行,当前页面的内容便会丢失;页面跳转时浏览器不会向服务器发出新的页面请求,浏览器也就无法前进、后退页面。         所以前端web路由需要实现以下目标:       (1)能根据页面URL来获取不同的模块,但不发起新的页面请求;       (2)能监听URL的变化。
QQ音乐技术团队
2021-11-08
1.5K0
大前端开发中的路由管理之一:开篇
一、前言  从早期的传统(Web)前端到当下的大前端,无论是iOS端还是Android端,路由管理这个概念,一直贯穿在应用(APP)开发的过程里。了解路由管理的形成与发展,可以帮助我们理解应用设计与开发,透析其中的技术原理,对于提升个人开发能力也是大有裨益。         QQ音乐技术团队(下称“团队”)汇聚了Web、Android、iOS、Flutter等平台的众多优秀人才,更在如MOO音乐、Q音探歌等项目上,进行了非常多的前沿技术实践,对于路由管理这个技术话题也是积累良多。         围绕页
QQ音乐技术团队
2021-11-05
1K0
MOO音乐的Flutter实战总结之内存治理(中)
MOO 音乐是 TME 旗下的新锐音乐服务,其团队是公司内最早实践 Flutter 的先行者之一。本系列文章将提炼 MOO APP 开发中遇到的情况,就 Flutter 内存占用治理方面,分享日常开发的一些基本认知、注意要点、排查方法和优化方案。内存治理篇文章共分上、中、下三篇,本篇为中篇。  四、内存泄漏的排查实战 为了便于我们定位具体问题代码,Android Studio 或 VS Code 插件帮我们包装了相关内存工具,这些工具都基于 debug 模式下 Dart VM service 暴露的接口开
QQ音乐技术团队
2021-08-23
8650
MOO音乐的Flutter实战总结之内存治理(上)
MOO 音乐是 TME 旗下的新锐音乐服务,其团队是公司内最早实践 Flutter 的先行者之一。本系列文章将提炼 MOO APP 开发中遇到的情况,就 Flutter 内存占用治理方面,分享日常开发的一些基本认知、注意要点、排查方法和优化方案。内存治理篇文章共分上、中、下三篇,本篇为上篇。 一、前言 内存问题几乎是所有软件开发都会碰到的标配问题。追求极致的内存瘦身,可以说是作为一名开发者的本能。MOO 音乐整体采用 Flutter 混合开发架构,在享受到了 Flutter 带来的卓越的跨平台开发效率的
QQ音乐技术团队
2021-08-19
1.6K0
探索Android复杂页面管理之道-QQ音乐播放页代码演进之路
前言 播放页是QQ音乐内曝光量最大的二级页,是端内展示歌曲信息、提供播控操作、进行推荐宣发的重要入口。随着QQ音乐的快速发展,播放页也从一个简单播控页面逐渐演变到了现在业务众多、UI多变的复杂页面。在该转变的过程中,播放页Android端的代码也根据不同时期的需要,进行了持续演进。本文将简要回顾Android端播放页代码在过去不同时期的结构特点,并重点介绍在最近一次代码结构调整中,我们探索出的一种适合多人开发和代码复用的复杂页面管理模式。 图 1: QQ音乐播放页 背景 MVC 在QQ音乐发展之初,播
QQ音乐技术团队
2021-07-23
3.2K1
Android全量编译加速——(透明依赖)
1.1. 背景 在我们平常的开发中构建工程是一个基础的环节,决定着开发效率的高低,然而随着业务代码不断累积,编译耗时也随之增长。虽然已经有许多增量编译加速方案,但不可避免的在很多场景,还是需要全量编译。而对于全量编译加速,我们遇到了一些困难: K歌的项目里,总代码量160w行,kotlin代码占比43%左右,编译耗时占比却高达70%,必须要压缩这个比例。 于是需要找到一种方法,既能继续享受kotlin带来的开发便利,也能缓解全量编译时间快速增长的问题。 1.2. 方案 如果能减少kotlin的编译数量,就
QQ音乐技术团队
2021-06-03
2.3K0
全民K歌直播视频清晰度评估系统建设
1. 背景介绍 随着直播、短视频以及各种音视频类应用的兴起与迅猛发展,如今全民K歌与QQ音乐活跃用户数以亿计,终端每天都会产生海量的UGC视频(包括直播和短视频等)。面对内容多样化的大规模视频带来的挑战,如何更好的把控端到端视频画质体验对整个直播、视频的全链路优化尤为关键。同时,为保障直播视频质量、对视频画质进行评估度量和实时监控,建设一个高效、准确的视频画质评估系统十分必要。 本文主要分享腾讯音乐技术团队针对细分直播视频场景定制的无参考的清晰度评估算法 TDQA(TME Deeplearning bas
QQ音乐技术团队
2021-06-02
1.5K0
见招拆招,敏捷实战:揭秘全民K歌背后的音乐黑科技
随着数字音乐的不断发展,线上 K 歌越来越流行。移动 K 歌从用户深层情感需求与消费场景出发,满足了新生代用户表达情绪、抒发个性的需求。而全民 K 歌作为 K 歌平台中的“标杆”,获得了更多用户和创作者的青睐,据悉,仅 2020 年全民 K 歌就触达了 107.6 万优质创作者。 作为目前全球领先且广受用户欢迎的在线K歌娱乐社区,全民K歌背后有哪些技术支撑呢?面对海量用户数和复杂的业务场景需求,全民K歌都有哪些创新实践呢?我们联合infoQ举办了本次技术公开课,邀请到六位全民K歌的技术工程师来为大家分享,
QQ音乐技术团队
2021-05-28
1.2K0
音乐识别探索之路|音色识别亮相IJCNN,UAE惊艳ICASSP
一年一度的国际知名会议2021论文评选结果已经相继揭晓,我们的论文《Large-scale singer recognition using deep metric learning: an experimental study》成功被国际神经网络联合大会 (International Joint Conference on Neural Networks,简称IJCNN)收录,《Learning Audio Embeddings with User Listening Data for Content-
QQ音乐技术团队
2021-04-26
4.6K0
全民K歌内存篇3——native内存分析与监控
《全民K歌内存篇1——线上监控与综合治理》 《全民K歌内存篇2——虚拟内存浅析》 《全民K歌内存篇3——native内存分析与监控》 一、背景 在2020年的上半年,我们在用户反馈后台发现闪退、白屏问题不断增多,这些问题严重影响用户体验。观察Crash监控平台发现Crash率也在逐步升高,其中Native层的Top1的crash堆栈信息如下: 这个Crash在整体的crash中占比很大,通过这个堆栈信息,发现并没有明显的指向哪个业务代码。此时,把发生Crash时的内存信息上报到后台,分析发现:Cra
QQ音乐技术团队
2021-04-23
5.2K1
全民K歌内存篇2——虚拟内存浅析
《全民K歌内存篇1——线上监控与综合治理》 《全民K歌内存篇2——虚拟内存浅析》 《全民K歌内存篇3——native内存分析与监控》 一、简介 在多任务操作系统中,每个进程都拥有独立的虚拟地址空间,通过虚拟地址进行内存访问主要具备以下几点优势: 进程可使用连续的地址空间来访问不连续的物理内存,内存管理方面得到了简化。 实现进程与物理内存的隔离,对各个进程的内存数据起到了保护的作用。 程序可使用远大于可用物理内存的地址空间,虚拟地址在读写前不占用实际的物理内存,并为内存与磁盘的交换提供了便利。 Androi
QQ音乐技术团队
2021-03-04
3.5K0
Q音直播Flutter包裁剪方案(iOS)
1、背景 Flutter作为一款优秀的跨平台方案,我们Q音团队一致保持高度关注,团队内部也一直在努力促进Flutter的应用框架建设。在Q音直播接入Flutter的过程中,需要解决的首要问题便是”Flutter包体积变大”。本文将一步步剖析Flutter的包体积问题,带领大家探寻每一个可能的包体积优化点,结合实际项目和引擎源码,最终给出详细的包体积优化实现方案。欢迎大家相互交流Flutter相关技术。 1.1 Flutter混合开发模式 一般的如果我们想在现有原生App中加入Flutter,需要通过以下两
QQ音乐技术团队
2021-02-05
1.9K1
Pigeon- Flutter多端接口一致性以及规范化管理实践
导语: 跨端开发中,经常会遇到插件,接口管理上的问题。了解完本文,你将会了解Flutter是如何通过Pigeon去解决plugin中多端开发难以管理的问题。 demo源码地址 https://github.com/linpenghui958/flutterPigeonDemo warning:目前Pigeon还是prerelease版本,所以可能会有breaking change。下文以0.1.7版本为例。 为何需要Pigeon 在hybird开发中,前端需要native能力,需要native双端开发
QQ音乐技术团队
2020-10-26
3.6K0
基于 Yarn WorkSpace + Lerna + OrangeCI 搭建 Typescript Monorepo 项目实践
Lerna 已然成为搭建 monorepo 工程的首选,然而官方文档[1]并没有给出构建 monorepo 项目最后一公里的解决方案。而在这次在迁移搭建全民 K 歌基础库的实践中,在诸如 Orange CI 自动发布 npm 包等问题上就遇到了不少阻碍,我们把经验总结记录如下。 名词解释: Orange CI:腾讯内部开源的持续集成服务,类似于 Travis CI,一旦代码有变更,就自动运行构建和发布,并输出结果,是实现自动更新版本号及发布npm包的基础。 Monorepo:一种管理组织代码的方式,其主要
QQ音乐技术团队
2020-07-13
3.7K0
Flutter 核心原理与混合开发模式
在 「Fan 直播」的 Flutter 混合开发实践中,我们总结了一些 Flutter 混合开发的经验。本文第一篇章将从 Flutter 原理出发,详细介绍 Flutter 的绘制原理,借由此在第二章来对比三种跨端方案;之后再进入第三篇章 Flutter 混合开发模式的讲解,主要是四种不同的 Flutter 混合模式的原理分析;最后的第四篇章,简单分享一下混合工程的工程化探索。 “唯有深入,方能浅出”,对于一门技术,只有了解的深入,才能用最浅显、通俗的话语描述出。在此之前,我写过一些 Flutter 的文
QQ音乐技术团队
2020-07-06
2.2K0
Lottie动画原理
导语:Lottie动画是Airbnb开源的一个支持 Android、iOS 以及 ReactNative。通过AE导出的JSON文件+Lottie库可快速实现动画绘制。本文主要讲述从AE的bodymovin插件导出的JSON文件到OC的数据模型,再将数据模型拆解成独立图层,并为图层添加动画的过程。 Lottie动画原理概述 上图是Lottie动画库从AE导出动画到绘制到客户端屏幕的过程,第一阶段是JSON到Model(OC数据模型)的转换过程,主要是将JSON转成OC语言可以识别的数据模型Model,
QQ音乐技术团队
2020-07-03
5.1K0
QQ音乐超嗨DJ之节拍检测算法
1. 什么是节拍? 节拍(beat)是音乐在时间上的基本单位,它指强拍和弱拍的组合规律。如每隔一个弱拍出现一个强拍时是一种节拍,每隔两个弱拍出现一个强拍时是另一种节拍。当我们在听一首歌时,总会不自觉的摇头晃脑,或跟着节奏抖腿,或击掌打拍子,这些动作的时刻点,对应到音乐的时间里,就是节拍了。 2. 应用方向 音频可视化:如根据音频的节拍变换切换视频场景 游戏方向:如节奏大师、beatmaps 音乐风格化:如QQ音乐的超嗨DJ 3. 节拍检测算法 如开源的librosa采用节拍检测算法librosa.beat
QQ音乐技术团队
2020-05-27
5.1K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档