八年Android开发经验,从码农到架构师的技术成长之路

  发布时间:2019-05-22 16:05:33   作者:Android架构木木   我要评论

这篇文章主要介绍了八年Android开发经验,从码农到架构师分享我的技术成长之路,分为初级、中级、高级和资深四个阶段,感兴趣的可以了解一下

前言

移动研发火热不停,越来越多人开始学习android开发。但很多人感觉入门容易成长很难,对未来比较迷茫,不知道自己技能该怎么提升,到达下一阶段需要补充哪些内容。市面上也多是谈论知识图谱,缺少体系和成长节奏感,特此编写一份android研发进阶之路,希望能对大家有所帮助。

这篇文章里,我们只谈技术,不谈软技能。

在这里我把攻城狮分成初级、中级、高级和资深四个阶段,分别对研发设计能力、工具使用、系统原理和架构等作出要求。

初级

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

需要的技能有:

  • 掌握android 四大组件知识,深入了解相关生命周期;对于Application、Fragment、Intent也必须掌握。
  • 掌握android 基本布局和控件的属性和使用,常用布局有LinearLayout\RelativeLayout\ConstraintLayout等,控件有TextView\ImageView\RecyclerView\ScrollView等。
  • 对android的资源访问使用有基本了解,了解android针对不同国家、语言、屏幕、API的适配原理。
  • 掌握android系统服务和工具类的使用,对网络访问和数据库操作有基本认知。
  • 熟练掌握研发工具,如IDE、模拟器、网络代理、日志等。

 

中级

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

需要的技能有

  • 熟悉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)等。
  • 熟悉图片优化常用方法,避免编写内存泄漏的代码。

高级

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

需要的技能有

  • 掌握java高级特性,如JUC、线程池、NIO\BIO等;掌握jvm虚拟机知识,如内存模型、GC原理、类加载机制、线程模型等。
  • 对android运行环境有深入理解,理解android沙盒机制,掌握AIDL原理及Binder通信原理,了解app和activity启动原理。
  • 掌握热修复原理,各大厂商方案的优缺点。
  • 对于android事件分发有深入理解,重点掌握触摸事件机制。
  • 深入理解android绘制原理,理解VSYNC和surface机制和窗口原理。
  • 深入理解android动画原理,包括补间动画和属性动画。
  • 对于android安全机制有基本认知,理解android安全原理。
  • 深入理解端上设计范式思想,如mvc\mvp\mvvm\clean-arch等。
  • 理解架构演进,有良好的分层和拆分思路,掌握模块化、插件化、动态部署等。
  • 对新技术敏感,理解掌握下一代架构dynamic feature等。

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

 

资深

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

  • 理解微服务、SOA思想,对于后端开发有一定涉猎。
  • 了解前端研发工具和思想,知道vue react等研发框架。
  • 深入理解跨端技术,如phonegap、weex/RN flutter、小程序快应用等。

 学习路线及学习分享

对于很多初级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 2019校招Java 开发岗面试知识点解析(附最新笔面试题)

    这篇文章主要介绍了2019校招Java 开发岗面试知识点解析(附最新笔面试题),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-27
  • 八年Android开发经验,从码农到架构师的技术成长之路

    这篇文章主要介绍了八年Android开发经验,从码农到架构师分享我的技术成长之路,分为初级、中级、高级和资深四个阶段,感兴趣的可以了解一下
    2019-05-22
  • 35道SpringBoot面试题及答案(小结)

    这篇文章主要介绍了35道SpringBoot面试题及答案(小结)的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-21
  • 前端高频面试题

    本文是小编给大家收藏整理的一些关于前端高频率出现的面试题,非常不错,具有一定的参考借鉴价值,需要的朋友跟随小编一起看看吧
    2019-05-20
  • 寒冬求职之你必须要懂的Web安全

    随着互联网的发展,各种Web应用变得越来越复杂,满足了用户的各种需求的同时,各种网络安全问题也接踵而至
    2019-05-15
  • 华为面试改革加强考察编程难度大增

    面试者选择一种编程语言,两轮面试,每轮约45分钟。其中面试者编程30分钟,面试官提问与讨论15分钟。今天小编给大家讨论下华为面试改革加强考察编程难度大增,感兴趣的朋友
    2019-05-14
  • 面试必备之Java 最常见 200+ 面试题全解析

    这篇文章主要介绍了面试必备之Java 最常见 200+ 面试题全解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-13
  • 两个月刷完Leetcode前400题经验总结

    今年2月20日,我发了一篇文章,招募想刷题的朋友才参与我的Leetcode刷题计划,截止2019年5月10日,刷题热任务已经全部完成,共计383题。写这篇文章是相对这次的打卡活动做
    2019-05-13
  • Java面试经验+最新BAT面试资料分享给大家(小结)

    这篇文章主要介绍了Java面试经验+最新BAT面试资料分享给大家,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-08
  • 2019 金三银四:阿里P9架构的Android大厂面试题总结

    面试是一道坎,很多人会恐惧面试,即使是工作很多年的老鸟,可能仍存在面试的焦虑。 今天介绍了阿里P9架构的Android大厂面试题总结的相关资料,小编觉得挺不错的,现在分
    2019-05-05

最新评论