成为阿里P7移动架构师到底有多难?安卓资深架构师分享学习经验及总结,使用指南

概述

想了很久怎么样可以让文章的标题不那么悲观,但是各种文案都在我脑海里面不断的被否定,要么是不那么抓眼球,要么是立意不匹配。最后想了想,这个标题是真的符合我最近的感悟。

希望看过文章,能有同感的朋友也能多思考一下。

最近因为疫情的关系,相信很多国内的小伙伴都逐渐开始了解到在家上班的体验。在美国基本上work from home在IT公司里面算是比较常见的现象了。一般大厂每个周都会有一天被划为No Meeting Day,说只是不开会日,但通常都会被大家当成在家办公日。不开会嘛,那我在家和在办公室也没区别不是。

也正是因为闲的时间多了,看文章的时间也多了。我是个不喜欢看书,更倾向于看碎片化文章的人,没事翻翻掘金,翻翻Android Weekly,是我上厕所蹲坑时候的首选项。

但是让我感到悲伤的是,好多安卓技术博主,就在这么一个月两个月之间消失了。点击他们的个人主页,你会发现上次更新可能都是好几个月,甚至是一年前的事情了。粗糙的以为是因为疫情,其实想一下,这个事情符合技术这行的发展规律。

八大库

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相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的14套腾讯、字节跳动、阿里、百度等2020面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。

成为阿里P7移动架构师到底有多难?安卓资深架构师分享学习经验及总结,使用指南
成为阿里P7移动架构师到底有多难?安卓资深架构师分享学习经验及总结,使用指南

成为阿里P7移动架构师到底有多难?安卓资深架构师分享学习经验及总结,使用指南

成为阿里P7移动架构师到底有多难?安卓资深架构师分享学习经验及总结,使用指南
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

成为阿里P7移动架构师到底有多难?安卓资深架构师分享学习经验及总结,使用指南

1.md)对大家有一个方向参考。

[外链图片转存中…(img-0rB5bhwW-1610806168451)]

上一篇:Node-Red创建自定义节点


下一篇:mysql 批量修改表列明为大小写