【学习笔记】手把手教你 Debug — iOS 14 ImageIO Crash 分析
通过分析一个 ImageIO相关Crash,向你展示如何通过反编译追查问题原因
more ...通过分析一个 ImageIO相关Crash,向你展示如何通过反编译追查问题原因
more ...本文为学习笔记,并非原创。原文链接,原文发表于2021-06-09
原作者通过分析HarmonyOS应用的构建产物,得出如下结论:
1.构建产物中,包含一个标准Android的apk文件。该apk内AndroidManifest.xml文件中做了两件事:
1)定义Application为ShellApplication
2)定义MainActivity为MainAbilityShellActivity
2.ShellApplication最终继承自Android的Application。
3.MainAbilityShellActivity继承自Android的Activity。
原作者认为鸿蒙的分布式软总线
是一个私有RPC协议。通过OpenHarmony源码分析,分布式软总线
主要有以下几个模块:
原作者认为,HarmonyOS = Android - GMS + HMS + 分布式软总线 + 以Ability为核心的应用开发框架 …
more ...本文为学习笔记,并非原创。原文链接,原文发表于2021-04-06
「零首帧」并不是真的0毫秒启播,而是用户几乎感知不到有首帧时间的存在,在我们的播放质量埋点中对应小于100ms以内的首帧时间。
在现实业务中,有些场景是无法使用所有的优化条件的,比如在随机播放的场景不能进行预加载、某些场景不适合使用播放器复用技术等。
从上图可以看出首帧时间主要包含这么几个部分: 获取视频播放链接,网络建连,下载视频头部数据,音视频解码和渲染。
优化方案:播放地址随feed下发。
通常而言,视频资源会有唯一标识 video id , 在点播的服务端会有一个根据 video id 信息获取播放链接的服务,如果 app server 端能够调用 vod 服务生成播放地址,然后将播放地址随 feed 流一起下发,则省去了客户端的一次网络请求耗时。
优化方案:预解析。预连接&连接复用。避免TLS握手。
拿到播放地址,播放器与DNS建连,首先会做DNS解析 …
more ...本文为学习笔记,并非原创。原文链接,原文发表于2020-11-15
本篇文章写得真的不错,建议全文阅读。这里只记我不熟悉的地方。
每次commit都会生成一个节点,节点内容是本次及本次之前所有提交的内容。
不管HEAD还是分支,都是对一个commit节点的引用。因为只是引用,所以它们非常轻量。引用+节点是git构成分布式的关键。
HEAD是一个引用,它可以指向任意一个节点。其指向的节点始终为当前工作目录,换句话说就是当前工作目录(也就是你看到的代码)就是HEAD指向的节点
分支也可以视为一个引用,分支指向一个节点时,该节点的内容就是分支的内容。
分支可以存在多个,而HEAD只有一个。
git merge 分支名/节点哈希值 //将指定分支或节点的内容合并至HEAD
如果要合并的内容完全领先于当前分支,如下图中在ft-2
上执行git merge ft-1
,则会触发fast-foward(快速合并),此时两个分支指向统一节点。
但实际情况中,往往遇到的是下图中的情况。这种就不能直接合并了,在ft-2 …