最近帮部门主管面试了很多人,从简历上看这些人的工作年限都不短,但做的都是一些传统的项目,想做现在大环境越来越难,大家找工作都不容易,就打算见一见。
在沟通中发现,由于年限不小,他们的定位基本都是高级及以上,毕竟,年限摆在那里,面个中级也不体面。
面试时我打算聊点基础的,先打开一下话题,结果没想到我一问,不提开发工具,仅仅基础的技术很多也知之不详,6年的工作经验仅仅是实现简单的功能堆起来的,毫无深度,对于APP性能优化等等一问三不知,都停留Android的基础层面上,性能优化问题更是一问一个死,framework最新动态也毫无关注。
说到这里,我想给正在从事Android开发工作的程序员们一些建议,千万别在舒适的工作环境中迷失了自己。就目前的大量招聘信息来说,想要获得高薪就得会一些几点:
懂性能优化、网络访问、常用开源框架,framework等知识点。
作为一名拥有多年工作经验的Android高级开发工程师,接下来我想分享一下这些年来,我对于技术一些归纳和总结,和自己对作为一名高级工程师需要掌握那些技能的笔记分享,希望能帮助到有心在技术这条道路上一路走到黑的朋友!
1.Android基础部分
主要学习知识点:架构设计核心知识(注解和泛型),动态架构设计编程原理,Android基础四大组件,Android虚拟机指令、垃圾回收机制、类和对象的结构,并发内存模型等基础知识。当做在学习这部分知识之前还需要掌握Android开发语言的基本知识。
2.Android性能优化
主要学习知识点:App启动优化,UI卡顿优化,布局优化,内存优化,崩溃优化,网络优化等知识原理和方法;这部分内容主要应用于解决App或系统对不同手机型号中会出现用户体验不好的问题。比如App出现闪退,系统出现崩溃等现象。
3.Android framework
Framework 即应用框架层,是 Android 架构的关键组成部分,为我们开发应用程序提供了非常多的API,使得开发者通过简单调用API即可开始APP的开发,而不用详细了解 Android 系统纷繁复杂的底层知识。掌握了以上这三个部分知识内容,基本可以面试中级Android工程师岗位。
主要学习知识点:Framework通信、Framework底层服务、Framework事件机制;
4.Android音视频
对应岗位:音视频开发工程师,需要学习知识:C++语言,H264、H265编码,MediaCodec硬解码(联发科与高通) ,Media内核源码等。
5.Android常用开源框架
分别是Arraylist,Okhttp,Retrofit,图片加载,Dagger ,MVC.MVP.MVVM,Jetpack Room等框架。这是Android高级工程师必须要掌握的知识。
6.Android车载开发
对应岗位:Android车载开发工程师,主要学习知识:usb通信协议,车载蓝牙通信,CAN总线协议,CarFramework框架,SurfaceFlinger智能座舱,CarLuncher,System UI系统,车载SOA架构原理等知识。