Android视频编码
微信 Android 视频编码爬过的那些坑 - 云+社区 - 腾讯云
Android 中支持的三种,这只是框架代码里给出的三种,实际在手机中是否支持不确定。
FFMPEG 滤镜
FFMPEG complex filter的流程 - CSDN博客
录屏技术点
VirtualDisplay的surface选用。系统自带了一个MediaRecorder,可以录入文件,这个类有一个surface可以作为VirtualDisplay的参数。最初是采用的这个方案,由于需要分析屏幕上的内容,需要将视频中的一帧截取出来。在这个方案里,我们只能在编码完成时,即将mux时,对sampledata解码,得到帧数据。
这里有个注意点是H.264编码需要在MediaFormat中设置csd-0字段,这个字段的内容可以在MediaCodec的回调中获得,具体是当BufferInfo.flag为BUFFER_FLAG_CODEC_CONFIG时,在ByteBuffer的内容即是。
当我们的手指在屏幕上滑动形成原始数据,经过驱动的处理,再经过系统服务的选择,最终来到我们写的应用。
矩阵的乘法满足以下运算律:
结合律: A(BC) = A(BC)
左分配律: (A+B)C = AC + BC
右分配律: C(A+B) = CA + CB
矩阵乘法不满足交换律。
Okio总体上来说是对io操作的一种良好封装。操作方便,性能也比系统自带的要好。
首先这里推荐郭霖的博客https://blog.csdn.net/column/details/15318.html
他的文章可以起到很好的引导作用。不过读代码这件事还是要自己来一遍才会对代码理解的清楚。
阅读代码时要先走一遍流程,忽略细节,抓住流程中的几个重要点,然后把重要的点连成线。人的脑子是有限的,短时间容纳的东西也是有限的,只能捡重要的先装进去。
接下来就是分析这些重要的点,像迭代一样。
当我们在startActivity时,Activity类中第一个被调用的方法是attach,在这个方法里会new PhoneWindow,PhoneWindow里会生成DecorView,这个DecorView就是window的根view。
C++ Rvalue References Explained
PopupWindow setWindowLayoutMode 方法在Api 23之后deprecated了,统一放到setWidth和setHeight里面了,和LayouParams的width height抽象统一
Coroutine
http://coolshell.cn/articles/10975.html
http://www.cnblogs.com/youxin/p/3624089.html