再来当一次技术搬运工,内容来自高可用框架
,学霸君工程师袁荣喜的如何实现1080P延迟低于500ms的实时超清直播传输技术
。
插件开发中的资源问题分析及填坑处理
做插件开发有两个问题需要解决,一个是资源文件加载,另一个是关于四大组件生命周期的管理。这里我们就简单分析会遇到那些坑,和一些简单的处理方法或者思路。
智能指针简单分析
Android消息处理零散分析
浅析Bitmap占据内存大小
弹幕框架DanmakuFlameMaster简单分析
随着B站逐渐崛起,其开源弹幕项目DanmakuFlameMaster应用场景也越来越多。我也是在一次偶然机会下发现了这个项目,被其惊艳的效果震撼。以前我就对弹幕技术很感兴趣,可能是因为B站动漫看多,几乎每一部番都是漫天的弹幕乱飞,如果哪部剧没有弹幕反而觉得不适应;久而久之就愈发倾向钻研其原理。
看到效果后,我猜想绘制原理应该是创建一个定时器作为全部弹幕的时间参考,然后每条弹幕出现的位置都以这个定时器去计算x、y值,然后定时任务定期postInvalidate,弹幕画布重新绘制onDraw;弹幕如此之多,应该有缓存机制,也许建立了一个弹幕池让出现过的弹幕缓存起来,新弹幕可以复用旧弹幕item。
先这么假设吧,然后验证我们的猜想,看看有哪些坑。
Android属性动画流程分析
摘要:Google在Android3.0之后给我们带来了属性动画,是真正意义上的改变属性。对比以前的Tween动画,只能作用于View,而且Tween动画改变的只是View的绘制效果,View真正的属性并没有改变。比如,一个按钮做平移的动画,虽然按钮的确做了平移,但按钮可点击的区域并没随着平移而改变,还是在原来的位置。而属性动画则可以改变真正的属性,从而实现按钮平移时点击区域也跟着平移。通俗点说,属性动画其实就是在一定时间内,按照一定规律来改变对象的属性,从而使对象展现出动画效果。
Android跨进程通信机制Binder简要分析
在Android系统中,每个应用都是由四大组件中之几组成,我们经常要去写一些Activity或者Service,这些Activity或者Service有时候会运行在不同的进程中,如果我们要让这些不同的Activity或者Service之间通信,就要用到Android提供的Binder机制了。
Binder其实也不是Android提出来的一套新的进程间通信机制,它是基于OpenBinder来实现的。OpenBinder最先是由Be Inc.开发的,接着Palm Inc.也着使用。现在OpenBinder的作者Dianne Hackborn就是在Google工作,负责Android平台的开发工作。
Android系统是基于Linux内核的,Linux已经拥有管道,system V IPC,socket等IPC手段,比如pipe管道(有血缘关系的进程),fifo有名管道(无血缘关系的进程),mmap/munmap内存共享映射,Unix Domain Socket等等。但是Android却采用了Binder这种不同上述几种类型的特有机制,至于原因肯定有很多,比如安全,实现方式合理性,内存优化,性能等等。(这一块儿坑的很多,需要积累很多linux系统相关内容,我也是恶补了许多知识。并且Binder远远不是三言两语能够概括清楚的,所以很多底层细节无法为大家展现,比如内核部分代码细节。既然不幸入坑了,我们就一步一步往下挖吧=。=)
移动直播技术秒开优化经验
以下内容来自@高可用架构
,这次当一回技术的搬运工,为大家分享七牛创始人之一————徐立的移动直播技术秒开优化经验
。
博客搭建历程————————Github和Hexo
我的博客搭建历程,使用github pages + hexo,域名解析,配置插件