Binder随意记录

[TOC] ###为何选择Binder Linux已经拥有管道,system V IPC,socket等IPC手段,却还要依赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。 ####传输性能好Binder的优点之一就是,复杂数据类型传递可以复用内存。 socket:是一个通用接口,导致其传输效率低,开销大,主要用在跨网络的进程间通信和本机上进程间的低速通信。 管道和消息队列:因为采用存储转发方式,所以至少需要拷贝2次数据,效率低。 共享内存:虽然在传输时没有拷贝数据,但其控制机制复杂。 IPC 数据拷贝次数 共享内存 0 Binder 1 Socket/管道/消息队列 2 ####安全性高传统IPC没有任何安全措施,完全以来上层协议来确保。首先传统IPC的接收方无法获得对方进程可靠的UID/PID(用户ID/进程ID),从而无法鉴别对方身份。

AppCompatActivity的作用分析

AppCompatActivity的作用分析 对于v7包下的AppCompatActivity,我是比较晚入的android(并不知道是不是坑),所以一开始就用的as创建项目就很奇怪为什么我的activity自动继承了AppCompatActivity,不是应该继承Activity吗?Ecm?我仿佛感觉受到了欺骗,于是就对其进行了研究(就是看源码拉)。(因为当时是边看边解析边写的,所以思路可能有点乱,自己再看一遍源码更好,也是学习的一部分) 一开始我就发现了v4 v7 v13等等的support库,然后发现这些库是用来解决兼容问题的,数字分别对应了android的API版本,即分别适配android版本4,7,13以上的app。看完之后发现google程序员为了适配也是良苦用心啊。

ffmpeg知识点

libavcodec: 用于各种类型声音/图像编解码libavutil: 包含一些公共的工具函数libavformat: 包含多种多媒体容器格式的封装丶解封装工具libswscale: 用于视频场景的比例缩放丶色彩映射转换libpostproc: 用于后期效果处理libavdevice: 用于音视频数据采集和渲染等功能的设备相关ibswresample: 用于音频重采样和格式转换等功能libavfilter: 包含多媒体处理常用的滤镜功能