Android 开发应该学习什么技术才能成为大牛?做 Android 开发的同学应该都知道,Android 涵盖的知识面实在太多太杂,让学习 Android 开发的人有点二和尚摸不到头脑的感觉,学习了很久也不清楚自己的水平到底离大牛还差多远。
如果您觉得文章有用,请帮忙点个赞或关注,也为我鼓励一下,坚持写下去!
最近闲下来没事仔细思考整理了一个大牛 Android 到底应该会哪些技术。让你对自己目前拥有的技术能力对应社会薪资价值有一个清楚的参照。同时也对 Android 开发宏观整理一下知识类别,有的同学东学一点西学一点,知识不能够成体系发展。看完这篇文章以后你会清楚的知道以后再学的任何 Android 开发技术知识是弥补了你的哪部分技术空白。
神级 Android 开发大牛应具备27类技术内容,全部掌握可以横行天下。
初级 Android 开发需要掌握的技术:
初级研发工程师的定义是掌握基础的Android知识,能够独立完成一个功能,工作年限大概在1-2年,这个层级大部分人通过看一些资料书籍再经过项目练习很快可以达到。这个级别的人往往需要掌握如下一些技能:
- 掌握Android 四大组件知识,深入了解相关生命周期,对于Application、Fragment、Intent常见的开发知识也必须掌握。
- 掌握Android 基本布局和控件的属性和使用,常用布局有LinearLayout、RelativeLayout、ConstraintLayout等,控件有TextView、ImageView、RecyclerView、ScrollView等。
- 对Android的资源访问使用有基本了解,了解Android针对不同国家、语言、屏幕、API的适配原理。
- 掌握android系统服务和工具类的使用,对网络访问和数据库操作有基本认知。
- 熟练掌握研发工具,如IDE、模拟器、网络代理、日志等。
上面的主要技术内容全部掌握后,基本上可以说是一个“老鸟”级别的初级Android工程师了。一线城市月薪7K不成问题,也可以更高(视技术掌握程度+运气+自我要求+勇气+行业大环境)。但是我们的目标是架构师/开发专家,要想继续提升,那还需要掌握下面的技术内容。
中级 Android 开发需要掌握的技术:
我对中级工程师的定义是能够熟练完成功能研发外,还需要掌握常见开源库的一些原理,并仿照开源库去造轮子练习。这个阶段的人大多工作3-5年,业务开发能力熟练,碰到任何一个问题都能够得到解决,这个级别的人往往需要具备如下技能:
- 熟悉SOLID基础设计原则,掌握23种设计模式。
- 对于研发语言特性java/kotlin有深入理解,如反射、动态代理、apt等。
- 对Android架构有基础了解,对apk结构和打包原理有深入了解。
- 对于Android各个版本特性有基本了解,如MD设计、权限管理、doze模式等。
- 熟练掌握各种研发调试工具,如git、gradle、mat、layout inspector等。
- 掌握Handler、AsyncTask原理,熟悉多线程开发。
- 对绘页面制原理有初步理解,能够实现一个复杂自定义控件。
- 能够熟练掌握开源库的使用,如图片库(Glide、Fresco)、网络库(Volley、okhttp、Retrofit)、工具(Dagger、RxJava、EventBus)等,能够对这些常用的库进行二次封装。
- 熟悉应用常见的优化方法,避免编写内存泄漏的代码。
掌握了上面的技术后,完全可以一线城市月薪15K以上(视技术掌握程度+运气+自我要求+勇气+行业大环境)。 但是想成为大牛,那还不够!对,你没听错,学了这么多也还不够!!!
高级 Android 开发需要掌握的技术:
对于高级,就不仅限于功能和业务开发,还需要深入理解Android系统的运行原理,达到融会贯通,部分可够作为Android端架构师。这一阶段的人大多工作5-8年,具备开源库设计能力,同时对于Android系统的运行原理也比较了解。
- 掌握java高级特性,如JUC、线程池、NIOBIO等;掌握jvm虚拟机知识,如内存模型、GC原理、类加载机制、线程模型等。
- 对Android运行环境有深入理解,理解Android沙盒机制,掌握AIDL原理及Binder通信原理,了解app和activity启动原理。
- 掌握热修复原理,各大厂商方案的优缺点。
- 对于Android事件分发有深入理解,重点掌握触摸事件机制。
- 深入理解Android绘制原理,理解VSYNC和surface机制和窗口原理。
- 深入理解Android动画原理,包括补间动画和属性动画。
- 对于Android安全机制有基本认知,理解Android安全原理。
- 深入理解端上设计范式思想,如mvc、mvp、mvvm、clean-arch等。
- 理解架构演进,有良好的分层和拆分思路,掌握模块化、插件化、动态部署等。
- 对新技术敏感,理解掌握下一代架构dynamic feature等。
如果达到这一水平,恭喜你,你已经超过70%左右的人,拿下30k月薪完全不在话下,但是如果要再进一步,比如架构师/开发专家,那么除了理解Android的一些核心原理外,还需要具有架构设计能力,能够从更高层面看待问题,理解整个系统的设计。
Android开发专家需要掌握的技术:
作为开发专家,那么除了理解Android的一些核心原理外,还需要具有架构设计能力,能够从更高层面看待问题,理解整个系统的设计。
- 理解微服务、SOA思想,对于后端开发有一定涉猎。
- 了解前端研发工具和思想,知道vue react等研发框架。
- 深入理解跨端技术,如phonegap、weex/RN flutter、小程序快应用等。
能够达到这一阶段的要求,架构师/开发专家没得跑,月薪起薪就有40k,而你在技术群答疑、吹水的时候,别人一口一个大牛,一方面是别人对自己技术的一种认可,另一方面,听起来确实是过足了瘾~(反正这确实是我当时的内心真实写照,手动滑稽一下)
除了上面提到的技术内容,在此基础上还有一项更重要的,就是丰富的开发经验、业务案例、大厂经验、团队经验、管理经验等。
下面我就单论技术水平,谈谈如何做到高效进阶。
技术水平如何高效进阶?
我个人特别推崇一个最简单的方法,当然也的确是最为高效的:脑图+资料+视频
对标阿里P7、腾讯T3,年薪40W+资深企业架构师技能成长路线
这份是《 对标阿里P7、腾讯T3,年薪40W+资深企业架构师技能成长路线 》,有了它就完全可以做到高效、系统的指点你达到40W年薪,当然你也可以根据上面的知识点进行查漏补缺,提高自身的竞争力。
为了对应这份技术大纲,我特地找到我的几个架构师朋友和我一起花了整整3个月时间收录整理了 Android学习PDF+架构视频+面试文档+源码笔记 ,还有Android开发面试专题资料,高级进阶架构资料,主要针对需要往高级架构师层次学习提升的同学,在这里免费分享,希望能帮你突破瓶颈,升职加薪,跳槽进大厂
如果你有需要的话,可以点赞+评论,关注我,点这里或 加Vx:15388039515(备注简书,需要资料)
网友评论