疫情让“灵活用工”浮出水面,一线互联网公司面经总结
[](
)一,初级入门篇:
一 绘制图片
1. ImageView 绘制图片
2. SurfaceView 绘制图片
3. 自定义 View 绘制图片
二、AudioRecord API 详解
三、使用 AudioRecord 实现录音,并生成 wav
创建一个 AudioRecord 对象
初始化一个 buffer
开始录音
创建一个数据流,一边从 AudioRecord 中读取声音数据到初始化的 buffer,一边将 buffer 中数据导入数据流。
关闭数据流
停止录音
四、用 AudioTrack 播放 PCM 音频
1.AudioTrack 基本使用
MODE_STATIC 模式
MODE_STREAM 模式
2.AudioTrack 详解
音频流的类型
Buffer 分配和 Frame 的概念
AudioTrack 构造过程
3. AudioTrack 与 MediaPlayer 的对比
区别
联系
SoundPool
五、使用 Camera API 采集视频数据
1.预览 Camera 数据
2.取到 NV21 的数据回调
**六、使用 MediaExtractor 和 MediaMuxer A
PI 解析和封装 mp4 文件**
1.MediaExtractor API 介绍
2.MediaMuxer API 介绍
3.使用情境
七. MediaCodec API 详解
1.MediaCodec 介绍
2.MediaCodec API 说明
3.MediaCodec 流控
流控基本概念
Android 硬编码流控
Android 流控策略选择
由于文章篇幅受限,剩余内容过多,文中插图有限,下文只能截图目录展示:
[](
)二,中级进阶篇:
Android OpenGL ES 开发(一): OpenGL ES 介绍
Android OpenGL ES 开发(二): OpenGL ES 环境搭建
Android OpenGL ES 开发(三): OpenGL ES 定义形状
Android OpenGL ES 开发(四): OpenGL ES 绘制形状
Android OpenGL ES 开发(五): OpenGL ES 使用投影和相机视图
Android OpenGL ES 开发(六): OpenGL ES 添加运动效果
Android OpenGL ES 开发(七): OpenGL ES 响应触摸事件
Android OpenGL ES 开发(八): OpenGL ES 着色器语言 GLSL
Android OpenGL ES 开发(九): OpenGL ES 纹理贴图
Android OpenGL ES 开发(十): 通过 GLES20 与着色器交互
使用 OpenGL 显示一张图片
GLSurfaceviw 绘制 Camera 预览画面及实现拍照
使用 OpenGL ES 完成视频的录制,并实现视频水印效果
[](
)高级探究篇:
深入学习音视频编码,如 H.264,AAC,研究使用开源编解码库,如 x.264,JM 等
深入研究音视频相关的网络协议,如 rtmp,hls,以及封包格式,如:flv,mp4
深入学习一些音视频领域的开源项目,如 webrtc,ffmpeg,ijkplayer,librtmp 等等
将 ffmpeg 库移植到 Android 平台,结合上面积累的经验,编写一款简易的音视频播放器
将 x264 库移植到 Android 平台,结合上面积累的经验,完成视频数据 H264 软编功能
将 librtmp 库移植到 Android 平台,结合上面积累的经验,完成 Android RTMP 推流功能
音视频编解码技术
音视频编解码技术(一):MPEG-4/H.264 AVC 编解码标准
音视频编解码技术(二):AAC 音频编码技术
流媒体协议
流媒体协议(一):HLS 协议
流媒体协议(二):RTMP 协议
多媒体文件格式
多媒体文件格式(一):MP4 格式
多媒体文件格式(二):FLV 格式
多媒体文件格式(三):M3U8 格式
多媒体文件格式(四):TS 格式
多媒体文件格式(五):PCM / WAV 格式
以上资源均免费分享给大家,内容均放在了开源项目:**[【Github】](
)**,大家可以自行获取。
[](
)插件化、组件化、热修复开发
组件化作为 Android 客户端技术的一个重要分支,近年来一直是业界积极探索和实践的方向。每个大厂内部的各个 Android 开发团队也在尝试和实践不同的组件化方案,并且在组件化通信框架上也有很多高质量的产出。
[](
)怎样实现组件化
要实现组件化需要考虑的问题主要包括下面几个:
代码解耦。将一个庞大的工程拆分解耦,这是非常耗时耗力的工作,但这也是最基础最重要的一步
数据传递。每个组件都有可能提供给其他组件使用,主项目与组件、组件与组件之间的数据传递
UI 跳转。
组件的生命周期。组件加载、卸载和降维的生命周期
集成调试。在开发阶段如何做到按需的编译组件?一次调试中可能只有一两个组件参与集成,这样编译的时间就会大大降低,提高开发效率。
代码隔离。如何杜绝耦合的产生。
下面给大家介绍的是全网最全的高级 Android 组件化强化实战手册,覆盖了整个互联网公司,受篇幅限制不会展示所有内容,只能截图展示部分,完整内容已整理成 PDF 文档。
现今插件技术的使用非常普遍,比如微信、QQ、淘宝、天猫、空间、携程、大众点评、手机管家等等这些大家在熟悉不过的应用都在使用。
插件技术可以给项目开发带来巨大的好处,比如:并行高效开发、模块解耦、解除单个 dex 函数不能超过 65535 的限制、动态更新升级、按需加载等等。
掌握好插件技术,需要如下的安卓基础和相关知识,例如:
Android 应用程序安装,加载过程
评论