Android寒冬
今年来听到很多人说,Android 开发现在饱和了进入寒冬了,大学生还不如搞Python,现在才是风口。
对于Android技术进阶路上很多人面临着以下问题:
个人觉得对,也不对
有句老话说的好呀“冬天到了春天还会远么?”
从目前来看,很多入门门槛不够高的所谓风口上的技术确实是能够在收入上高出一节。但任何技术都会从趋之若鹜到趋于平稳的阶段,到时候又当如何呢?跳向另一个风口么?
潮水退去,谁在裸泳就一目了然了。前端的技术也是一样,90%的技术方向饱和以后,水平有限的同学都会面临所谓的”寒冬“,招聘市场职位缩减,企业用人门槛抬高,但与此同时,你仍然能听到无尽的关于高级开发招不到人的抱怨。
实际上一开始的热门都只是表象,因为相关技术人才供不应求,公司只能降低标准招人,但这并不表明这是理所当然的。热度退去,一切恢复正常,享受着早期红利入职,却安于舒适区,技术上一无长进,过了几年就开始抱怨工作难找……
从某种程度上讲,选择搞技术这条路的一开始就应该明白,逆水行舟,不进则退,如果不能持续学习就一定会被淘汰,毕竟搞技术又不是当公务员。这样看来,不思进取的同学就理应难找工作,市场才是健康公平的,不是吗?
另外在我看来如果这一行真的有寒冬,我选择尽可能多的储备粮食柴火,做好能够想到的一切准备。我觉得我是愚钝的人,理解力不如别人,要靠更勤奋才能跟普通人站在一个起跑线上。面对考验的时候,天分和运气都无法成为自信的筹码,能够让自己有点信心的,也就只有尽全力的努力过这一个普通的事实了。
如何提升?如何学习?
那么作为一个过来人我们该怎样储备粮食柴火呢?针对大家的现状,也为帮助大家能在较短时间内提升自己,今天,就为大家整理分享一份腾讯T3级Android高级技术学习思维大纲,大家可以可以参考学习一下:
这里我们先来看一下不痛开发阶段的程序员的薪资情况:
再往上基本就是架构师了,如果你想要做到架构师这个级别,那么这样的一份Android架构进阶路线图谱肯定是必不可少的,里面的内容基本概况了目前互联网的主流技术
Android进阶路线分析
Java语言进阶
Android应用是由Java语言进行开发的,SDK也是由Java语言编写,对于Android来说,只要SDK没有用Kotlin重写,那么Java语言是都需要学习的。而且Android APK的后台服务器程序大概率是Java语言构建,所以掌握Java也是一种必然,这就是为什么BAT面试为什么死抠你的Java水平。
- 泛型与注解在Retrofit中的应用
- 多线程与Java File IO操作应用实战
- Rxjava原理分析
- JVM与内存泄漏原理解析
- ClassLioader与反射在Hook中应用
- 动态代理机制在源码中的应用
高级UI与FrameWork
- UI绘制原理
- 动画原理
- 事件响应机制
- 屏幕适配
- FrameWork源码解析
- 相机适配
360°性能优化
一个app的性能好不好我们需要从两个层面努力。第一个层面:书写高性能代码;第二个层面:调优。
如何写出高性能的代码呢?
那就需要我们具备深厚的代码功底,这就是代码的基础。另外,对常用的算法有自己独到的见解,leetcode上有刷个上百道题,这样差不多可以达到精通最常用的排序查找动态规划等算法的能力。再者,高效的算法以及节省内存的数据结构如果配合优秀的符合应用场景的设计模式,那么,这些就为高性能的代码提供了实现依据。另外一个就是对写好的代码进行调优,那么调优的方向就是使用Profiler工具进行测试和检查,看哪里有性能消耗大的操作,然后分析对于代码的问题。调优的方向就变成了如何对内存调优,对耗电调优,对网络流量调优,当然,还有对启动速度,页面切换效果与速度,开机白屏体验,闪屏方面的原因等进行分析和调优。最后再加上一个屏幕适配相机适配。
- 从事件
- 从内存
- 卡顿调优
- APP保活
- 内存优化
- 高性能编程实战
- OOM原理解析
NDK开发专题
音视频/高清大图片/人工智能/直播/抖音等等这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以Android NDK技术已经是我们必备技能了。要学习好NDK,其中的关于C/C++,jni,Linux基础都是需要学习的,除此之外,音视频的编解码技术,流媒体协议,ffmpeg这些都是音视频开发必备技能,而且OpenCV/OpenGl/ 这些又是图像处理必备知识,这些都在我们课程里面有原理级的实战项目。
- C/C++基础
- JINI编程基础
- 图像处理与热修复应用
- 音视频开发
- OpenCV人工智能
- OpenCL 图像绘制
前沿技术专题
现在去很多公司面试,除了你具备基本的能够写一个高性能app的能力后,一般都会在自己的app里面加一些现有的相对较 6的技术,这些技术我们称之为前沿技术。他们一般包含热升级,热修复,App Instant,强制更新,组件化路由架构Arouter,RxJava,IOC架构方法,Hook技术等等,当然,这些技术你不能只会用,你需要知道他的原理,有时候,你还需要知道如何对这些架构进行改进。
- 热修复/热更新
- 组件化/插件化
- RxJava深入研究
- 图片与网络架构
- Google I/O大会技术
- Kotlin项目实操
微信小程序
- 小程序架构介绍
- UI界面开发
- 高级API实操
- 微信对接实战
- 任务清单项目
- 电影榜单项目
Flutter Hybrid开发
混合开发的flutter现在已经逐渐变成了主流的混合开发框架,另外由于阿里系的强大存在,导致阿里 系的公司都在用Weex混合架构,这些都是一个Android工程师开拓视野,走向未来必不可少的基本技能。
- Dart语法
- Flutter线程运行模型
- Flutter与Native通信架构
- Flutter内存调优
- Flutter项目实战
这里是一份详细的关于Android开发的学习大纲,大家可以参考一下:
最后:学习心得分享
很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,尤其是对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
不论遇到什么困难,都不应该成为我们放弃的理由!
同时我经过多年的收集整理,这里是关于我自己收集到一套较为完整的Android 学习,面试文档,视频收集大整理,有兴趣的伙伴们可以看看~
转载:https://blog.csdn.net/weixin_44339238/article/details/102491078