不知道你们发现了吗?高级Android开发工程师真的越来越“稀有”了。
以腾讯、阿里、字节跳动为代表的大厂们,技术开发人才一直是头号拉拢对象。
那么现在市场对Android开发工程师的要求是什么标准呢?高薪资工程师平时都做什么呢?
比如爱奇艺的这个Android高级工程师岗位,薪资在 30k-50k,你需要负责客户端的需求实现、架构设计和代码编写,保障交付产品的质量;性能优化、技术方案调研和落地;以用户为中心持续升级用户体验并对技术进行优化。
不管是大厂还是普通互联网公司,想要成为企业「疯抢」的高薪Android开发工程师,这些能力就够吗?
从图中我们可以看到,这个腾讯的岗位还需要:
- 扎实的计算机科学基础,熟悉常见的数据结构和算法,扎实的Java/C++编程能力,精通常用数据结构与算法,熟悉TCP/HTTP协议;
- 了解Android开发平台、Framework和底层设计原理,具有源码阅读及修改能力,有良好的编程习惯,代码结构清晰;
- 具备良好的分析解决问题能力,能独立承担任务及把握进度风险;
那么你想要跳槽,却又觉得自己能力不够,该如何成功进入心心念念的大厂呢?
我建议大家以各大一线大厂的岗位要求为标杆,可以参考这份《对标腾讯65W+年薪的Android高级工程师技能体系图》
项目开发必备底层技术
Android以Java语言为基础,以虚拟机为核心,经过Daivlk虚拟机再到Art虚拟机演变,所以需要学两大底层一个是Java语言底层,一个是虚拟机底层
java底层涵盖:Java序列化、泛型与反射、JDK高级动态代理、 Java高级并发原理。
虚拟机底层涵盖:虚拟机层类加载机制、Android虚拟机原理、dex运行机制,Android内存,高级数据结构与算法
Android应用是在虚拟机上运行的。如果不清楚虚拟机的底层原理,我们将很难理解APP的运行过程。 同时Android由java语言开发。那么Java中哪些东西是我们Android程序员需要学习的呢?由于Android程序员习惯了 C V 代码块,所以与Android中比较相关的稍微比较难的Java基础几乎都是一个门槛,像泛型原理,多线程底层,反射,虚拟机,注解,序列化等
在面试过程中:BATJ这些大公司都要求有扎实的Java语言基础和虚拟机底层原理,这一个部分就是Android开发中最常用的java语言相关知识。在这个里面,我们要结合Dex文件加密实战和热修复手写实战来让大家深刻体会Java语言体系的重要性以及在Android开发中的地位
Android Framework源码与UI新技术
在Android中,Framework泛指系统架构层。Framework的中文意思是“框架”,在软件开发中通常指开发框架,在一个系统中处于内核层之上,为顶层应用提供接口,被设计用来帮助开发者快速开发顶层应用,而不必关心系统内核运行机制,通常Framework都会隐藏main函数等应用程序必须的组件,开发人员只需把精力放在功能代码的实现上。说简单点,Framework具体的工作也就是为android应用开发的开发人员提供了一系列的服务和API的接口。
UI其实并不是单纯指用户看到的效果。因为在Android开发中,每个控件背后都有一套深层次的体系在支撑,自然而然,会UI不单纯指的是会自定义控件,我们还应该知道自定义控件背后的执行流程,包括从Activity的创建,XML的解析,到每个控件的测量、布局、绘制。当然在中间还夹杂着比如动画、事件分发机制、嵌套滑动机制等知识点。还有谷歌提供的一些UI框架也是我们要掌握的对象,比如Jetpack组件库、Material Design等。
大厂内部APP调优方案
性能优化是一个项目必须要经历的过程,你的应用好与坏都是在用户使用的过程中反映出来的,如果性能优化没有做好,对于你的应用来说影响是非常大的。尤其是现在的Android市场竞争非常激烈,如果你的应用体验没有竞品的好,那么用户流失是必然的。
性能优化不是一件简单的事情,每个应用的性能好与坏无法由一个人来决定,因为性能优化的维度有太多了,从我们项目的整体架构,到我们代码的每一个细节,再到应用使用环境的测试,只有步步为营,才能做好一个项目的优化。大部分开发者把性能优化指向与不闪退就行,但是实际上性能优化包含了很多方面,比如从简单的启动优化、 UI优化、 卡顿优化、 崩溃优化、 安全性优化,到深层次的弱网优化、 大图加载优化、 储存优化、 高效传输优化、 极限瘦身优化,再到实际开发过程中的OOM问题原理解析、 ANR问题解析、 Crash监控方案。要想把这些优化流程做好,我们不仅从项目架构、代码规范等方面入手,还要学会利用第三方的检测工具来检测项目性能,最主要是,我们需要一套完整的性能优化方案,这正是我们所缺少的,所以我们必须要把缺少的补上, 打造一套真正的完整的性能优化体系,把性能优化流程化,常态化。
高级音视频
从未来的大趋势来看,随着5G时代的到来,音视频慢慢变成人们日常生活中的必需品。除了在线教育、音视频会议、即时通讯这些必须使用音视频技术的产品外,其它的产品也需要加入音频、视频元素。
正是因为这样一个大的趋势,现在除了各大厂之外,其它一些小厂也开始寻找音视频人才。
一名稍好点的音视频人才现在可能会有3-4家公司抢着要、争着要。对音视频人才的需求从小众变成了大众,这更多的是大家对未来市场预期的结果。
从音视频编码原理H264 H264视频编码, H265编码原理, H265编码实战。音视频编辑之剪映实战/ 抖音特效相机实战/ FFmpeg打造万能播放器实战/ 腾讯课堂直播APP实战/ 钉钉人脸打卡实战等等 这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以Android NDK技术已经是我们必备技能了。要学习好NDK,其中的关于C/C++,jni,Linux基础都是需要学习的,除此之外,音视频的编解码技术,流媒体协议,ffmpeg这些都是音视频开发必备技能,而且OpenCV/OpenGl/ 这些又是图像处理必备知识
要想很好的学习这些知识,自己查找资料也是可以的,不过不可避免的就是知识庞杂,通俗易懂的资料非常少,甚至很多博客上的资料都是错误的……
在这里我就分享一份收录整理的Android学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料
这些都是我现在闲暇时还会反复翻阅的精品资料。里面对近几年的大厂面试高频知识点都有详细的讲解。相信可以有效地帮助大家掌握知识、理解原理,帮助大家在面试季取到一份不错的答卷。
当然,你也可以拿去查漏补缺,提升自身的竞争力。
如果你有需要的话,可以 点击这里快速免费获取
喜欢本文的话,不妨顺手给我点个赞、评论区留言或者转发支持一下呗~