进击的Android程序员,架构师的成长之路

126 篇文章 4 订阅
4 篇文章 0 订阅

在IT行业,很多工作一定年限的程序员感觉自己到了瓶颈不知道如何突破,成长为别人眼中的架构师。

架构师对很多人来说非常神秘,那成为架构师都具有哪些要求呢?

我们先来看看互联网公司对于不同阶段的Android开发者开出的薪资水平(仅供参考,切勿较真)
在这里插入图片描述
相信作为一名程序员,成长为架构师也在你的梦想清单之中,很多人都空有一个梦想、一个目标,课总是找不到实现的路径。

下面是某公司Android架构师岗位的职责与要求。刚截的图,还热乎着呢~
在这里插入图片描述
年薪64-112万,这样的薪资相信可以让很多人动容了,毫不吹牛的说,稍微省着点花钱,不出几年就“有房有车有存款”了。

不过架构师可不是嘴上说说这么简单,相信有很多Android开发者都会有这样的感觉“我感觉现在我什么都会,什么都能做”是吧,实在不会的我还可以百度、Google,这其实就是知识碎片化的体现,你所掌握的知识,只是零零散散的知识碎片,甚至有些部分你知道要怎么做,但不知道为什么这么做,这是因为,你没有弄清楚他的原理。

试想,面试时能让你随便查百度查Google吗?真正去应聘的时候,知道既是知道,哪怕是你不知道原理、不知道为什么要这么做,在面试时依然会露出马脚,面试官可不会依着你!(小声bb:SB面试官~)

下面这就是一份高级架构技术脑图,这就是一个完整的知识体系
在这里插入图片描述

Java语言进阶与Android内核


Android应用是由Java语言进行开发的,SDK也是由Java语言编写,所以我们要学习java语言。另外,虽说kotlin语言得到了Android官方的热推,但是kotlin也是编译成了java语言再运行的。对于Android来说,只要SDK没有用kotlin重写,那么Java语言是都需要学习的。而且Android apk的后台服务器程序大概率是java语言构建,所以学习java也是一种必然。那么Java中哪些东西是我们Android程序员需要学习的呢?由于Android程序员习惯了 C V 代码块,所以与Android中比较相关的稍微比较难的Java基础几乎都是一个门槛,像 泛型,多线程,反射,JVM,Java IO,注解,序列化等,都是被 CV 的对象,而一直C V的程序员是不懂原理的。

App开发框架知识体系(高级UI与FrameWork)


这块知识是现今使用者最多的,我们称之为Android 2013~2016年的技术,但是,即使是这样的技术,Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道,天天在复制这些代码;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。所以我们需要从新的角度去分析这些知识点,深入研究他们,要学习源码,模仿源码,然后再hook源码,这样才能说自己懂这块的知识。这些都是做Android开发,做高级工程师的基础。

性能优化


一个app的性能好不好我们需要从两个层面努力。

第一个层面:从写代码的时候就需要注意,让自己的代码是高性能高可用的代码,这个过程是书写高性能代码;

第二个层面:对已经成型的代码通过工具检查代码的问题,通过检查到的问题来指导我们进行代码的删改,这个过程被称为调优。

如何写出高性能的代码呢?那就需要我们具备深厚的代码功底,这就是代码的基础,如:数据结构达到可以根据应用场景写出符合当前场景的特殊结构,比如google针对Android平台特征研发了sparseArray替代HashMap。另外,对常用的算法有自己独到的见解,leetcode上有刷个上百道题,这样差不多可以达到精通最常用的排序查找动态规划等算法的能力。再者,高效的算法以及节省内存的数据结构如果配合优秀的符合应用场景的设计模式,那么,这些就为高性能的代码提供了实现依据。

另外一个就是对写好的代码进行调优,那么调优的方向就是使用Profiler工具进行测试和检查,看哪里有性能消耗大的操作,然后分析对于代码的问题。调优的方向就变成了如何对内存调优,对耗电调优,对网络流量调优,当然,还有对启动速度,页面切换效果与速度,开机白屏体验,闪屏方面的原因等进行分析和调优。最后再加上一个屏幕适配相机适配。

NDK 模块开发

在这里插入图片描述
音视频、高清大图片、人工智能、直播、抖音等等这些年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以Android NDK技术已经是我们必备技能了。要学习好NDK,其中的关于C/C++,jni,Linux基础都是需要学习的,除此之外,音视频的编解码技术,流媒体协议,ffmpeg这些都是音视频开发必备技能,而且OpenCV、OpenGl这些又是图像处理必备知识。

Android前沿技术

在这里插入图片描述
现在去很多公司面试,除了你具备基本的能够写一个高性能app的能力后,一般都会在自己的app里面加一些现有的相对较“666”的技术,这些技术我们称之为前沿技术。他们一般包含热升级,热修复,App Instant,强制更新,组件化路由架构Arouter,RxJava,IOC架构方法,Hook技术等等,当然,这些技术你不能只会用,你需要知道他的原理,有时候,你还需要知道如何对这些架构进行改进。另外,非常重要的一点,Android开发者不愿意接受新知识,所以对于现在Google推出的新的技术方案毫无感觉,这些都是被 control C 和control V所毒害,开源让开发者失去了自我,失去了基本的编码能力,失去了深入学习的信心和毅力,所以对于很多google推出的新技术好组件(Google I/O 大会新技术),好框架已经很多人不愿意去学习了,而这是不应该的,我们需要不断的学习、不断的提升。

另外还有这些方面,由于篇幅原因就先不讲了
在这里插入图片描述
以上这些都是成为架构师的必经之路~
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值