2021大厂Android知识点总结!保准看明白!

## 八大库 **1.libavutil** 核心工具库,最基础模块之一,其他模块都会依赖该库做一些基本的音视频处理操作 **2. libavformat** 文件格式和协议库,封装了Protocol层和Demuxer、Muxer层,使得协议和格式对于开发者来说是透明的 **3. libavcodec** 编解码库,封装了Codec层,但是有一些codec是具备自己的License的,FFmpe不会默认添加像libx264、FDK-AAC、Lame等库,但是FFmpeg想一个平台,可以将其他的第三方codec以插件的方式添加进来,为开发者提供统一接口 **4.libavfilter** 音视频滤镜库,该模块包含了音频特效和视频特效的处理,在使用FFmpeg的API进行编解码的过程中,可以使用该模块高效的为音视频数据做特效处理 **5. libavdevice** 输入输出设备库,比如需要编译出播放声音或者视频的工具ffplay,就需要确保该模块是打开的,同事也需要libsdl的预先编译,该设备模块播放声音和视频都又是使用libsdl库 **6.libswresample** 用于音频重采样,可以对数字音频进行声道数、数据格式、采样率等多种基本信息的转换 **7.libswscale** 该模块用于图像格式转换,可以将YUV的数据转换为RGB的数据 **8.libpostproc** 该模块用于进行后期处理,当我们使用filter的时候,需要打开这个模块,filter会用到这个模块的一些基础函数 比较老的ffmpeg还会编译出avresamle模块,也是用于对音频原始出具进行重采样的,但是已经被废弃,推荐使用libswresample替代 另外,库里还可以包含对H.264/MPEG-4 AVC视频编码的X264库,是最常用的有损视频编码器,支持CBR、VBR模式,可以在编码的过程中直接改变码率的设置,在直播的场景中非常适用!可以做码率自适应的功能。 ## 常用函数 1.av_register_all():注册所有组件 2.avformat_open_input():打开输入视频文件 3.avformat_find_stream_info():获取视频文件信息 4.avcodec_find_decoder():查找解码器 5.avcodec_open1():打开解码器 6.av_read_frame():从输入文件读取一帧压缩数据 7.avcodec_decode_video2():解码一桢压缩数据 8.avcodec_close():关闭解码器 9.avformat_close_input():关闭输入视频文件 ## 学习福利 **【Android 详细知识点思维脑图(技能树)】** > ![](http://www.icode9.com/i/li/?n=2&i=images/20210704/1625406995860517.jpg) 其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。 虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,**现在高级工程师还是比较缺少的**,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。 > 这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。 由于篇幅有限,这里以图片的形式给大家展示一小部分。 ![](http://www.icode9.com/i/li/?n=2&i=images/20210704/1625406995201522.jpg) 详细整理在GitHub可以见; **[Android架构视频+BAT面试专题PDF+学习笔记](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)** 网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
上一篇:一个回答引发热烈讨论!面试建议


下一篇:吃透这份Android高级工程师面试497题解析,值得收藏!