Android 架构师研发技术进阶之路:不同阶段需要掌握的那些技术及软技能(1)

初级

我对初级研发攻城狮的定义是掌握基础的android知识,能够独立完成一个功能。这个层级大部分人通过看一些资料书籍再经过项目练习很快可以达到。

需要的技能有:

1. 掌握android 四大组件知识,深入了解相关生命周期;对于Application、Fragment、Intent也必须掌握。

2. 掌握android 基本布局和控件的属性和使用,常用布局有LinearLayout\RelativeLayout\ConstraintLayout等,控件有TextView\ImageView\RecyclerView\ScrollView等。

3. 对android的资源访问使用有基本了解,了解android针对不同国家、语言、屏幕、API的适配原理。

4. 掌握android系统服务和工具类的使用,对网络访问和数据库操作有基本认知。

5. 熟练掌握研发工具,如IDE、模拟器、网络代理、日志等。

中级

而到达中级就需要付出一些努力了,需要了解更多知识,可以仿照开源库去造轮子练习。中级工程师要能够熟练完成功能研发。需要的技能有:

1. 熟悉SOLID基础设计原则,掌握23种设计模式。

2. 对于研发语言特性java/kotlin有深入理解,如反射、动态代理、apt等。

3. 对android架构有基础了解,对apk结构和打包原理有深入了解。

4. 对于android各个版本特性有基本了解,如MD设计、权限管理、doze模式等。

5. 熟练掌握各种研发调试工具,如git、gradle、mat、layout inspector等。

6. 掌握Handler\AsyncTask原理,熟悉多线程开发。

7. 对绘页面制原理有初步理解,能够实现一个复杂自定义控件。

8. 能够熟练掌握开源库的使用,如图片库(Glide\Fresco)、网络库(Volley\okhttp\Retrofit)、工具(Dagger\RxJava\EventBus)等。

9. 熟悉图片优化常用方法,避免编写内存泄漏的代码。

高级

如果到达中级,那么恭喜你已经可以应付大部分情况了。但要能更进一步,就需要深入理解android系统的运行原理,达到融会贯通,可以作为android端上的架构师。

1. 掌握java高级特性,如JUC、线程池、NIO\BIO等;掌握jvm虚拟机知识,如内存模型、GC原理、类加载机制、线程模型等。

2. 对android运行环境有深入理解,理解android沙盒机制,掌握AIDL原理及Binder通信原理,了解app和activity启动原理。

3. 掌握热修复原理,各大厂商方案的优缺点。

4. 对于android事件分发有深入理解,重点掌握触摸事件机制。

5. 深入理解android绘制原理,理解VSYNC和surface机制和窗口原理。

6. 深入理解android动画原理,包括补间动画和属性动画。

7. 对于android安全机制有基本认知,理解android安全原理。

8. 深入理解端上设计范式思想,如mvc\mvp\mvvm\clean-arch等。

9. 理解架构演进,有良好的分层和拆分思路,掌握模块化、插件化、动态部署等。

10. 对新技术敏感,理解掌握下一代架构dynamic feature等。

至此,android端研发你已经炉火纯青,能够面对各种情况,达到泰山崩于前而色不变的境界。如果还想继续前进,就需要突破技术栈,从更高架构层次考虑问题。

资深

而到了资深层次,技术栈已经不再是阻碍。能够从更高层面看待问题,理解整个系统的设计,作为系统架构师的角色存在。

1. 理解微服务、SOA思想,对于后端开发有一定涉猎。

2. 了解前端研发工具和思想,知道vue react等研发框架。

3. 深入理解跨端技术,如phonegap、weex/RN flutter、小程序快应用等。

总结:

希望你能对照上面的知识图谱,彼此印证查缺补漏,不断在技术道路上前行。有什么疑问和建议欢迎一起探讨。

Android架构师之路

在上面,我们探讨了成为系统架构师的硬技术技术指标。但成为一名合格的架构师,不仅仅对于技术精通即可,还需要有更多的软实力,讨论一些架构以内代码之外的东西。

在说软实力之前,我们先探讨下架构师的职责。个人理解团队中架构师不仅仅是写代码、设计优化架构,还需要对老板汇报技术规划、对团队宣讲,打造技术氛围、提升团队整体技术水平,打造团队技术影响力,负责招聘吸引更多的人加入团队等。

因此一个合格的架构师至少需要以下三点能力:

观察力

要做好一名好的架构师,得有细致的观察能力,善于发现代码中存在的问题,可优化的点,以及未来的机会。大部分开发同学经常会忙于开发各种需求,对于技术架构关注并不多,代码架构往往就在需求迭代中慢慢腐化。

而很多时候,我们就像温水中的青蛙,感觉不到存在的问题。于是就需要架构师这样的角色,从独立的视角看待架构,发现代码中存在问题。 哪些需求优化,哪些基础库可以升级,哪个地方性能存在问题,哪个地方又制约了研发效率。 架构师的独立视角并不代表不需要懂业务,相反架构师是最需要贴近业务的研发,并且理解业务的来龙去脉和未来发展规划,制定符合业务发展的架构。

对于技术也同样要保持敏感度,了解社区前沿技术的发展,从中捕获机会,落地到研发中,保持团队技术的先进性。

抽象总结能力

并不是所有的问题都需要解决,并不是所有的问题都需要现在解决。

经常有人戏称架构师是PPT工程师,必然的做PPT是架构师必备的一个能力,背后反映的是架构师呕心沥血的思考沉淀。如果工程师只是看到一个个的问题,只聚焦在点上,那么永远不可能成长为架构师。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

最后

简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。

面试过程一定要有礼貌!即使你觉得面试官不尊重你,经常打断你的讲解,或者你觉得他不如你,问的问题缺乏专业水平,你也一定要尊重他,谁叫现在是他选择你,等你拿到offer后就是你选择他了。

另外,描述问题一定要慢!不要一下子讲一大堆,慢显得你沉稳、自信,而且你还有时间反应思路接下来怎么讲更好。现在开发过多依赖ide,所以会有个弊端,当我们在面试讲解很容易不知道某个方法怎么读,这是一个硬伤…所以一定要对常见的关键性的类名、方法名、关键字读准,有些面试官不耐烦会说“你到底说的是哪个?”这时我们会容易乱了阵脚。正确的发音+沉稳的描述+好听的嗓音决对是一个加分项!

最重要的是心态!心态!心态!重要事情说三遍!面试时间很短,在短时间内对方要摸清你的底子还是比较不现实的,所以,有时也是看眼缘,这还是个看脸的时代。

希望大家都能找到合适自己满意的工作!
如果需要PDF版本可以在GitHub中自行领取!

进阶学习视频

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

3)]

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

[外链图片转存中…(img-dSUYrB7z-1710503221723)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值