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

前言

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

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

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

初级

我对初级研发攻城狮的定义是掌握基础的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)等。
  8. 熟悉图片优化常用方法,避免编写内存泄漏的代码。

    高级

如果到达中级,那么恭喜你已经可以应付大部分情况了。但要能更进一步,就需要深入理解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工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

原文地址:https://blog.51cto.com/14332859/2397912

时间: 2024-08-28 00:20:52

八年Android开发,从码农到架构师分享我的技术成长之路的相关文章

Java架构师分享自己的从业心得,从码农到架构师我用了八年

工作了挺久,发现有个挺有意思的现象,从程序员.高级程序员,到现在挂着架构师.专家之类的头衔,伴随着技术和能力的提高,想不明白的事情反而越来越多了. 这些疑问有些来自于跟小伙伴的交流,有些是我的自问自答,有些到现在也想不清楚,这篇文章就来写一写这些年来自己的从业心得. 记得有人说过一句话,大体意思是:现在计算机技术发展那么迅速,日新月异,那些学计算机技术的人,要不断学习才能不被淘汰,那些人的脑子是不是坏掉了,干嘛要让自己活的这么累?表示不解.不想时隔几年,我也进入了这个飞速发展的IT行业.大概是随

Java架构师分享自己的技术体系,程序员如何从码农到专家

一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心驱动力.我见到绝大多数程序员,对学习的态度,基本上就是这几个层次(很偏激哦): 下图是我总结出目前最应该学习的源码知识点: 二.分布式架构 分布式系统是一个复杂且宽泛的研究领域,学习一两门在线课程,看一两本书可能都是不能完全覆盖其所有内容的. 总的来说,分布式系统要做的任务就是把多台机器有机的组合.

疫情在家没事做推荐个学习的目录:怎么从一名码农成为架构师的必看知识点:目录大全(不定期更新)

面试题系列: 分享一波腾讯PHP面试题 2019年PHP最新面试题(含答案) Redis 高级面试题 学会这些还怕进不了大厂? 阿里面试官三年经验PHP程序员知识点汇总,学会你就是下一个阿里人! php面试题之PHP核心技术 掌握 Redis这些 知识点,面试官一定觉得你很 NB 当面试官问你:如何进行性能优化? PHP 经典面试题集 其他: 使用 PHP 7.4 的 PHP 有什么新功能? Go 与 PHP 的语法对比 Thinkphp系列: ThinkPHP6源码分析之应用初始化 Think

Android开发/源码资源汇总

Android 应用源码大收藏http://neast.cn/forum.php?mod=viewthread&tid=9483&fromuid=5 全网最全的Android游戏源码汇总http://neast.cn/forum.php?mod=viewthread&tid=5080&fromuid=5 AndroidUI设计之高仿系列http://neast.cn/forum.php?mod=viewthread&tid=5293&fromuid=5 全网

一个移动开发老码农的书单

了解更多老码农的个人信息,爱八卦的,请看这里:http://www.koulianbing.com/?page_id=12 老码农是个比较宅的人,不爱玩游戏,只爱看书.过去10年来读的书中,还能记得的书大部都是很不错的,列出来推荐给大家.会持续更新. 一.开发技术 1.Effective Objective C 2.0 适合代码量在5000行以后阅读,对细节优化,性能提升,结构设计都非常有帮助,强烈建议所有iOS码农人手一本,至少读三遍. 2.Objective-C高级编程 日本人写的,薄薄的一

来,接招!!! (八个Android项目源码)

Android项目源码分享 给大家分享几个Android开发项目源码,大部分功能相信可以在实战项目中直接使用,供大家下载学习,大部分项目是基于 Android Studio开发,IDE为Eclipse的童鞋可通过网上教程自行转换,这里就不多说了.有句话说,不贴墙纸的装修都是耍流氓,无源码无效果图的文章也算是耍流氓, ,那就直接上图吧.最近在整理GitHub,打算把一些以前做过的项目中部分功能和使用的技术点资料上传,回头也和大家分享. OK,要去忙了,再不去忙项目,测试版出不来就危险了,希望有一天

年终小盘点:这十八个Android开发必备知识点,你都知道吗?

本篇文章主要介绍?Android?开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 一.查看CPU温度二.开机向导调试相关方法三.查看APP启动时间四.判断 user,userdebug 版本的方法五.修改截屏默认存储路径六.解析 kernel dump 方法七.SPRD 默认打开 Ylog 以及dumpsys enable方法八.判断是否正在 monkey 测试的方法九.修改MTK log 模式的方法十.MTK平台只开Mobile log方法十一.SPRD平台 只开Android lo

Android开发相关的Blog推荐——跟随大神的脚步才能成长为大神

本篇文章主要纪录我在学习过程中,发现的非常给力的CSDNBlog和个人Blog,这些Blog都有一个共同的特点,即内容详实,讲解透彻,也算是给后来的初学者指一条路吧!只要你下定决心跟随强者的脚步,成为人们眼中的大神,只不过是时间问题! 下面排名不分先后 CSDN 鸿洋:http://blog.csdn.net/lmj623565791 爱哥:http://blog.csdn.net/aigestudio 老罗:http://blog.csdn.net/luoshengyang 小巫:http:/

【Android开发经验】Android开发相关的Blog推荐——跟随大神的脚步才能成长为大神

本篇文章主要纪录我在学习过程中,发现的非常给力的CSDNBlog和个人Blog,这些Blog都有一个共同的特点,即内容详实,讲解透彻,也算是给后来的初学者指一条路吧!只要你下定决心跟随强者的脚步,成为人们眼中的大神,只不过是时间问题! 下面排名不分先后 CSDN 鸿洋:http://blog.csdn.net/lmj623565791 爱哥:http://blog.csdn.net/aigestudio 老罗:http://blog.csdn.net/luoshengyang 小巫:http:/