Android 开发,如何写出符合规范的异常处理代码?

2021-08-13
阅读 5 分钟
4.7k
在 Java 中,异常明确的分为两种:Checked Exception 和 Unchecked Exception。下图中的红色部分表示 Unchecked Exception 异常,蓝色的表示 Checked Exception。结构图如下:
封面图

如何把应用搬上车

2021-07-30
阅读 8 分钟
4k
当前造车新势力越来越火,汽车智能化成为风口,很多手机应用希望拓展车机场景,云音乐及旗下 Look 直播也在车机端场景进行了一些探索,下面分享过程中的一些总结和心得体会
封面图

Android agp 对 R 文件内联支持

2021-07-20
阅读 7 分钟
5.9k
最近团队升级静态代码检测能力,依赖的相关编译检测能力需要用到较新的agp,而且目前云音乐agp版本用的是 3.5.0,对比现在 4.2.0 有较大差距,所以我们集中对 agp 进行了一次升级。在升级前通过官方文档,发现在 agp3.6.0 和 4.1.0 版本分别对 R 文件的处理方式进行了相应的升级,具体升级如下。
封面图

SVG基础及其动画应用浅析

2021-06-23
阅读 17 分钟
4.8k
和高清png来做个对比继续对比同样高清的质地,矢量图不畏惧放大,体积小。这里要说明一点就是,因为 SVG 中保存的是点、线、面的信息,与分辨率和图形大小无关,只是跟图像的复杂程度有关,所以图像文件所占的存储空间通常会比 png 小。
封面图

官方揭秘!你的颜色是这样算出来的……

2021-05-31
阅读 3 分钟
6.8k
与此同时,有网友开始分析起了本次活动的计算逻辑,甚至反编译出了所有可能的颜色结果。作为本次活动的核心开发人员,接下来将为大家介绍颜色测试活动的技术细节。
封面图

Objects in v8

2021-04-27
阅读 15 分钟
4.6k
文本将和大家一起简单了解一下 v8 内部是如何处理对象的,以及 v8 为了高速化对象属性的访问所做的一些优化的细节。除了结合现有的资料外,本文还链接了一些实现所对应的源码位置,以节约大家后续需要结合源码进行深入时所花的时间

Wakeup in XNU

2021-04-14
阅读 8 分钟
4.5k
苹果在iOS13的时候,在内核中加入了一个新的性能衡量指标wakeup,同时由于这个指标而被系统杀死的应用数不胜数,其中也包括我们常用的微信淘宝等。而这个指标完全是由 XNU 内核统计的,所以我们很难通过日志等普通手段去准确的定位问题,所以这里通过另一种思路去解决这个问题。

Libuv 之 - 只看这篇是不够的

2021-03-31
阅读 21 分钟
6.4k
As an asynchronous event-driven JavaScript runtime, Node.js is designed to build scalable network applicationsAbout Node.js

v8 Heapsnapshot 文件解析

2021-03-17
阅读 9 分钟
9.1k
在 node 中可以通过 v8.getHeapSnapshot 来获取应用当前的堆快照信息,该调用会生成一份 .heapsnapshot 文件,官方并没有对该文件的内容有一个详细的解释,本文将主要对该文件内容进行解析,并演示了一个了解文件内容后可以做的有趣的事情

基于 qiankun 的微前端应用实践

2021-03-11
阅读 7 分钟
8.5k
云音乐广告 Dsp(需求方平台)平台分为合约平台(Vue 框架)和竞价平台(React 框架),因历史原因框架选型未能统一,最近来了新需求,需要同时在两个平台增加一样的模块,因为都是 Dsp 平台,后期这样的需求可能会很多,所以考虑到组件复用以及降低维护成本,在想怎么统一技术栈,把 React 系统塞到 Vue 项目中进行呈现。

前端单元测试技术方案总结

2021-03-03
阅读 21 分钟
7k
单元测试的技术方案很多,不同工具之间有互相协同,也存在功能重合,给我们搭配测试方案带来不小的困难,而且随着 ES6, TypeScript 的出现,单元测试又增加了很多其他步骤,完整配置起来往往需要很大的时间成本。我希望通过对这些工具的各自作用的掌握,了解完整的前端测试技术方案。前端单元测试的领域也很多,这里主要...

WKWebView 请求拦截探索与实践

2021-01-28
阅读 11 分钟
21.5k
WebView 在移动端的应用场景随处可见,在云音乐里也作为许多核心业务的入口。为了满足云音乐日益复杂的业务场景,我们一直在持续不断的优化 WebView 的性能。其中可以短时间内提升 WebView 加载速度的技术之一就是离线包技术。该技术能够节省网络加载耗时,对于体积较大的网页提升效果尤为明显。离线包技术中最关键的环...

函数式编程进阶:Monad 与 异步函数的组合

2021-01-19
阅读 11 分钟
8.4k
前面两篇分别介绍了 Functor 和 Applicative 的概念和实际应用,并列举了几个具体的例子,说明了 Functor 和 Applicative 的实际用途,比如:使用 Either 来处理无处不在的 null 和创建可组合的 try-catch;使用 Applicative 来做高度灵活高度可拓展的表单校验;相信读者应该已经牢牢掌握了 Functor 的核心:map-应用一...

Flutter 图片控件适配之路

2021-01-13
阅读 8 分钟
8.6k
目前大部分应用都会使用大量的图片,图片成为当前应用带宽占比最大的一种资源。在我们接入 Flutter 的时候,发现 Flutter 的图片控件缓存完全由自己管理,同时还没有提供磁盘缓存(1.22版本),所以在性能以及体验上均比较差,所以必须对其进一步优化。
封面图

剖析 lottie-web 动画实现原理

2021-01-07
阅读 11 分钟
14.8k
Lottie 是一个复杂帧动画的解决方案,它提供了一套从设计师使用 AE(Adobe After Effects)到各端开发者实现动画的工具流。在设计师通过 AE 完成动画后,可以使用 AE 的扩展程序 Bodymovin 导出一份 JSON 格式的动画数据,然后开发同学可以通过 Lottie 将生成的 JSON 数据渲染成动画。

Poplayer 云音乐优化实践

2020-12-30
阅读 6 分钟
8.3k
你是否还在为各种特殊场景特殊逻辑而烦恼,是否还在为各种一次性业务而添加一堆代码,是否还在为各种奇奇怪怪的彩蛋而满心疲惫? 在云音乐不断迭代的过程中,我们不止一次的遇到产品说要在某一个地方加个彩蛋,有的是在触及特殊操作时,有的是在播放特定歌曲时,甚至有的是在特定时间点播放特定歌曲到特定播放进度时。

React 事件系统工作原理

2020-12-23
阅读 7 分钟
9.7k
在 React事件介绍 中介绍了合成事件对象以及为什么提供合成事件对象,主要原因是因为 React 想实现一个全浏览器的框架, 为了实现这种目标就需要提供全浏览器一致性的事件系统,以此抹平不同浏览器的差异。

漫谈 React Fiber

2020-12-16
阅读 7 分钟
4.5k
React 实现了使用 Virtual DOM 来描述 UI 的方式,通过对比两棵树的差异最小化的更新 DOM,这样使得用户的代码变的傻瓜,但是同时也来带了一些问题。这个核心的问题就在于 diff 计算并非是免费的,在元素较多的情况下,整个 diff 计算的过程可能会持续很⻓时间,造成动画丢帧或者很难响应用户的操作,造成用户体验下降。...

云音乐 Android 视频「无缝」播放实现总结

2020-12-09
阅读 5 分钟
6.7k
在网易云音乐 8.0 改版中,接到一个播放中的视频可以点击「小窗」按钮收起到 mini 播放条中继续播放的需求,刚接到这个需求时内心是崩溃的,要知道网易云音乐的 mini 播放条是一个可能会出现在 App 中的任何 Activity 上的 View,在不同 Activity 之间跳转时,如何能保证视频可以从一个 Activity “无缝”转移到另一个 Act...

聊聊 RN 中 Android 提供 View 的那些坑

2020-12-02
阅读 7 分钟
5.3k
最近笔者研究 Android 中使用自定义 View 提供原生组件给 React Native(下面统一写成 RN ) 端的时候,遇到一些实际问题,在这里从 RN 的一些工作机制入手,分享一下问题的原因和解决方案。

如何基于 TypeScript 实现控制反转

2020-11-25
阅读 8 分钟
4.2k
最近接到任务,需要给团队封装一个基于 EggJS 的上层 NodeJS 框架,在这个过程中参考了 NestJS 、Midway 等开源项目,发现它们都引入了一项重要特性 —— IoC ,于是笔者借这个机会对 IoC 进行了一些学习和梳理。本文主要参考了 Midway 的源码,按自己的理解基于 TypeScript 实现了 IoC,希望能给大家提供一些参考。

云音乐搭建平台性能优化实践

2020-11-16
阅读 5 分钟
2.2k
XRN 平台是云音乐音乐内容组产出的一个可视化的搭建页面平台,通过拖拽组件与设置组件,XRN 可以快速生成同时能在 React Native 与 Web 端渲染的页面。不管是 React Native 端还是 Web 端,我们都期望能够输出高性能的页面,带给用户更好的体验。本文会介绍我们提升页面性能的一些优化实践。以下是一些搭建的页面案例:

云音乐 React Native 优化实践之拆包与预热

2020-11-12
阅读 3 分钟
2.5k
随着 React Native 技术在业务中广泛的应用,一些比较重要的功能也开始采用 React Native 的技术方案来实现,这就给 React Native 页面的打开速度提出了更高的要求,因为打开速度是影响用户跳出率的重要原因之一。

函数式编程进阶:应用函子

2020-11-06
阅读 10 分钟
3.5k
上一章中介绍了 Functor(函子) 的概念,简单来说,就是把一个 “value” 填装进 “Box” 中,继而可以使用 map 方法映射变换 Box 中的值:Box(1).map(x => x+1)。本章我们在继续在 Box 的基础上继续扩展其他更强大的理念,从纯函数与副作用)的概念及用途作为承上启下的开端,继续巩固 Functor 的概念以及接下来将要介绍的...

前端组件化埋点的实践

2020-10-30
阅读 7 分钟
5k
开始正文前先介绍一下相关概念,熟悉的读者可以略过。前端埋点:一种收集产品数据的方式,它的目的是上报相关行为数据,相关人员以数据为依据来分析产品在用户端的使用情况,根据分析出来的结果辅助产品优化、迭代。BI:商业智能,公司内部做数据分析相关的部门。

网易云音乐 iOS 14 小组件实战手册

2020-10-26
阅读 16 分钟
11.2k
苹果在今年的 WWDC20 上发布了小组件(WidgetKit),支持在 iOS、iPadOS 主屏幕展示动态信息和个性化内容。加上 iOS 系统应用抽屉的加入,苹果对一向保守主屏幕大动干戈,导致用户也对小组件非常期待。但小组件的运行限制很多,如何在有限的机制上怎样做好用户体验就成为需要完成的挑战。

基于 qiankun 的 CMS 应用微前端实践

2020-10-22
阅读 16 分钟
4.9k
LOOK 直播运营后台工程是一个迭代了 2+ 年,累计超过 10+ 位开发者参与业务开发,页面数量多达 250+ 的“巨石应用”。代码量的庞大,带来了构建、部署的低效,此外该工程依赖内部的一套 Regularjs 技术栈也已经完成了历史使命,相应的 UI 组件库、工程脚手架也被推荐停止使用,走向了少维护或者不维护的阶段。因此, LOOK ...

聊聊 JavaScript 的并发、异步和事件循环

2020-10-19
阅读 5 分钟
3.8k
JavaScript 作为天生的单线程语言,社区经常聊 JavaScript 就聊异步、聊 Event Loop,看起来它们好像难舍难分,实际上可能只有五毛钱的关系。本文把这些串起来讲讲,希望能给读者带来一些收获,如果能消除一些误解那就最好了。

UIButton 状态新解

2020-10-14
阅读 6 分钟
2.4k
作为 iOS 开发者,一提到控件,就不得不提到 UIButton,它做为 iOS 系统最常用的响应用户点击操作的控件,为我们提供了相当丰富的功能以及可定制性。而我们的日常工作的 80% ~ 90% 做是在与 UI 打交道,处理控件在用户的不同操作下的不同状态,最简单的,比如用户没有登录时,按钮置灰不可点击,用户点击时出现一个反色...

搭建一个属于自己的在线 IDE

2020-10-12
阅读 13 分钟
5k
这几个月在公司内做一个跨前端项目之间共享组件/区块的工程,主要思路就是在 Bit 的基础上进行开发。Bit 主要目的是实现不同项目 共享 与 同步 组件/区块,大致思路如下:在 A 项目中通过执行 Bit 提供的命令行工具将需要共享的组件/区块的源码推送到远端仓库,然后在 B 项目中就可以同样通过 Bit 提供的命令行工具拉取...