之前我就提到过这个问题,在现在这个阶段,公司之间的技术鸿沟已经非常明显,开发者身在其中,也因为自身学习能力,环境,项目等等的差别,技术上的差距越拉越大,造成了工作几年之后的两级分化,并且这种差距的拉开不是靠自己的努力就能弥补的。在前段时间面试了一个在某一线手机厂商做App的同学,985出身,工作3年,目前也是公司的核心骨干,跟我说了他做的很多UI上的优化和重构工作。他们的App团队大概是4,5个人,看的出来他已经在力所能及的范围内努力做到最好,可惜,受限于团队规模,支持力度和技术储备,他的天花板来的太快,做的不够深入,技术能力也不够全面。
那面对这种情况,作为开发者,我们能做的是什么?最基本的,脱离舒适区,不停磨练自己的技术。举我自己的例子,刚进公司的时候我主要做的是UI,平时搞一些页面上的优化,解决一些小BUG和ANR,做的还算不错;因为之前做的不错,也因为方向变化,大半年之后我开始切换到做视频下载,后来又开始做视频播放,一年半多时间里跟我的导师把空间播放器和下载器推倒了重做,到现在各项指标都很不错。刚开始切换的时候很痛苦,音视频领域入门有一定门槛,项目压力非常大,之前又完全没有接触过。那段时间不知道多少次15楼南区半夜和假日只剩我跟我导师两个人在公司加班,可现在想想也确实是成长最快的时候。这块做的差不多了,今年又开始做编解码,继续在音视频这块深挖下去。所以就是这样,技术不行就深挖技术,觉得环境束缚了你就尽快跳槽,保持自己足够的竞争力。或许一次跳槽还没有办法改变什么,但这是一个量变产生质变的过程,一份不断向上的简历也能为你敲开很多公司的大门。
我在一线互联网企业工作近十年,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android性能优化、音视频开发、NDK技术、组件化插件化热修复、常见源码分析等学习路线分享出来。
希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在Android开发道路上学习和发展~
应用层开发
Android原生开发,需要重点关注的依然主要是各种性能优化,启动速度,耗电量,流畅度,网络优化再到大厂项目实战,这些都是作为一名优秀Android开发具备的基本素养。
-
启动速度
-
流畅度
-
抖音在APK包大小资源优化的实践
-
优酷响应式布局技术全解析
-
网络优化
-
手机淘宝双十一性能优化项目揭秘
-
高德APP全链路源码依赖分析
-
彻底干掉OOM的实战经验分享
-
微信Android终端内存优化实践
以上资源均免费分享给大家,内容均放在了开源项目:【Github】,大家可以自行获取。
音视频开发
幸运的是我们生活在一个好时代,科技在这几十年得到了迅猛的发展。在疫情肆虐的当下,我们可以通过音视频会议进行远程办公;我们还有在线教育系统,对于大多数学生来说,完全可以在家进行在线学习。
从某个角度看,这次疫情虽然导致很多行业处于崩溃边缘,但也催生了新的行业发展,其中音视频会议和在线教育就是因疫而起的行业。在疫情短时间内难以结束的情况下,音视频会议和在线教育的重要性马上体现了出来,新的沟通方式和教育方式被越来越多的人所认知,所接纳。
甚至我们可以判定,在线教育行业和音视频会议行业会在今年崛起,并在未来十年得到迅猛发展。
如何学习音视频开发
一,初级入门篇:
一 绘制图片
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 API 解析和封装 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、淘宝、天猫、空间、携程、大众点评、手机管家等等这些大家在熟悉不过的应用都在使用。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
最后
最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2019-2021BAT 面试真题解析,我把大厂面试中常被问到的技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。
还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
Android 基础知识点
Java 基础知识点
Android 源码相关分析
常见的一些原理性问题
希望大家在今年一切顺利,进到自己想进的公司,共勉!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
度2019-2021BAT 面试真题解析,我把大厂面试中常被问到的技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。
还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
Android 基础知识点
Java 基础知识点
Android 源码相关分析
常见的一些原理性问题
[外链图片转存中…(img-oOwASoih-1713514855380)]
希望大家在今年一切顺利,进到自己想进的公司,共勉!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!