移动研发在最近两年可以说越来越趋于稳定,因为越来越多人开始学习Android开发,造成市场参差不齐。正所谓入门容易成长很难,对未来比较迷茫,不知道自己技能该怎么提升,并且对于初级中级高级需要怎么进行成才,很多人都比较迷惑。

这是一线互联网公司Android岗位薪资职位图谱。为了方便大家成才,我把初级、中级、高级和资深四个常见的岗位需要掌握的一些知识进行如下整理。

初级研发工程师的定义是掌握基础的Android知识,能够独立完成一个功能,工作年限大概在1-2年,这个层级大部分人通过看一些资料书籍再经过项目练习很快可以达到。这个级别的人往往需要掌握如下一些技能:

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

我对中级工程师的定义是能够熟练完成功能研发外,还需要掌握常见开源库的一些原理,并仿照开源库去造轮子练习。这个阶段的人大多工作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)等,能够对这些常用的库进行二次封装。
  • 熟悉应用常见的优化方法,避免编写内存泄漏的代码。

对于高级,就不仅限于功能和业务开发,还需要深入理解Android系统的运行原理,达到融会贯通,部分可够作为Android端架构师。这一阶段的人大多工作5-8年,具备开源库设计能力,同时对于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等。

如果达到这一水平,恭喜你,你已经超过70%左右的人,但是如果要再进一步,比如架构中/开发专家,那么除了理解Android的一些核心原理外,还需要具有架构设计能力,能够从更高层面看待问题,理解整个系统的设计。

作为开发专家,那么除了理解Android的一些核心原理外,还需要具有架构设计能力,能够从更高层面看待问题,理解整个系统的设计。

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

一线互联网公司主流的Android架构师技术体系详解

以前我们一直被公司和技术牵着走,并不是自己在选择技术,而是不自觉地被推到了现在尴尬的处境。想想有多少人对于自己将来要发展的方向和技术类型进行过深入思考和比较呢?

技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;

我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。

前言移动研发在最近两年可以说越来越趋于稳定,因为越来越多人开始学习Android开发,造成市场参差不齐。正所谓入门容易成长很难,对未来比较迷茫,不知道自己技能该怎么提升,并且对于初级中级高级需要怎么进行成才,很多人都比较迷惑。这是一线互联网公司Android岗位薪资职位图谱。为了方便大家成才,我把初级、中级、高级和资深四个常见的岗位需要掌握的一些知识进行如下整理。初级初级研发工程师的定义是掌握基础的Android知识,能够独立完成一个功能,工作年限大概在1-2年,这个层级大部分人通.
初级 工程师 小明之前完全没接触过 Android 开发 ,是个应届生,他的待遇是13k,然后小明以校招的身份进入了百度,然后小明需要怎么学习才能成为 初级 工程师 呢?这个时候,小明对编程基础、数据结构、C语言都有一定基础,Java语法什么的也都掌握的比较好, Android 才有java语言,无奈的是小明并不会搞 Android 。 小明首先需要购买一本 Android 入门的书籍,为了更快地学习Andro
国内一位 Android 开发 者在 GitHub 开源的:《 Android 工程师 进阶手册》。 作者将手册按 工程师 能力, 划分 初级 中级 高级 三个阶段。在不同阶段,从技术、职场、学习等方面给出了不同建议。 GitHub:github.com/Skykai521/ Android DeveloperAdvancedManual ​ 为什么今天突然说到学习路线,学习资料。因为最近在看知乎的时候,我看到一个大家都比较在意的一个问题,就是大家对工资和自己具备的能力是否成正比报有疑虑,所以今天这篇文章不仅仅是给大家解答这个疑虑,更多的是让大家变得更加优秀 1、自我介绍。自我介绍其实是个比较关键的过程,这基本上决定了后续环节将会问哪些问题以及初步给你的评分定位(作为无数候选人的面试官,这一点主观上个人也是如此认为)。自我介绍的要点是重点讲述一两个最近自己主要参与或者负责的项目,着重说明自己承担的角色,所负责角色具体所做的事情,思路一定要清
不知不觉自己已经做了几 开发 了,由记得刚出来工作的时候感觉自己能牛逼,现在回想起来感觉好无知。懂的越多的时候你才会发现懂的越少。 如果你的知识是一个圆,当你的圆越大时,圆外面的世界也就越大。 最近看到很多 Android 新手问 Android 学习路线,学习方法啊,如何入门啊,所以我从网上找了一些资料,然后以我的工作 经验 给大家总结一下,让你们少走弯路,提取一些工作中经常用到的技术。
移动研发在最近两 可以说越来越趋于稳定,因为越来越多人开始学习 Android APP 开发 ,造成市场参差不齐。正所谓入门容易成长很难,对未来比较迷茫,不知道自己技能该怎么提升,并且对于 初级 中级 高级 需要怎么进行成才,很多人都比较迷惑。 为了方便大家成才,我把 初级 中级 高级 和资深四个常见的岗位需要掌握的一些知识进行如下整理。 初级 研发 工程师 的定义是掌握基础的 Android 知识,能够独立完成一个功能...
这是我收集的一些大公司关于 Android 工程师 (准确来说是 高级 Android 工程师 )的要求 希望给那些想进大公司的 开发 者一些参考,看看自己掌握了多少技能,还需要学习一些什么知识技术 以下要求均来自于智联招聘和猎聘网在2016-12 ~ 2017-02时间段内对 Android 大公司 Android 工程师 技能要求 知名公司 Android 技能要求 高级 Android 工程师 技能要求
移动研发在最近两 可以说越来越趋于稳定,因为越来越多人开始学习 Android 开发 ,造成市场参差不齐。正所谓入门容易成长很难,对未来比较迷茫,不知道自己技能该怎么提升,并且对于 初级 中级 高级 需要怎么进行成才,很多人都比较迷惑。 这是一线互联网公司 Android 岗位薪资职位图谱。为了方便大家成才,我把 初级 中级 高级 和资深四个常见的岗位需要掌握的一些知识进行如下整理。 初级 研发 工程师 的定义是掌握基础的 Android 知识,能够独立完成一个功能,工作 限大概在1-2 ,这个层级大部分人通过看一些资料书籍
焦虑是没有意义的,最好的办法就是付出行动,立刻,马上! 之前很多人问过我这么个问题,说怎样才能成为一名 高级 工程师 ?我觉得这是一个很好的话题,技术人的职业规划不管如何发展,总归是一个从 初级 高级 的过程,不要妄想从 初级 一步跨越到架构师、CTO 之类的职位,所以 高级 工程师 这个过渡阶段显得就很重要了,那么今天就来给大家说说你们还差在哪里! 1、工作 经验 与技术积累 说到 高级 工程师 大家的第一印象自然就是工作 经验 丰富,技术够牛逼。 注意这里说的是工作 经验 ,并不是指工作时间。有的人踏踏实实做项目,业余时间想着多..
初级 工程师 只要又快又好的完成任务就可以, 中级 工程师 阶段不仅要又快又好,还要能独当一面。独当一面是要能独立负责一个项目,或者一个独立业务。并在遇到问题时可以独立解决,成为最熟悉自己负责业务的那个人。 中级 工程师 开始要注重代码规范,学习更底层的知识,一般还要指导 初级 工程师 。同时要懂得更多职场规则,并做好长远的职业规划。...
近几 Android 开发 就业形势越来越严峻,面试越来越多难化,所以下面我将会总结一些我这几 面试的一些 经验 ,我们面试一些大厂需要准备一些什么,我们该怎么回答面试官的问题 注:本文适合人群: 刚毕业的大学生、缺乏面试 经验 的求职者、致力于在大厂社招中寻找 Android 相关机会的 开发 者等。 一、面试前的一些前期准备 面试嘛,总是需要面嘛,面的前提就是得有一份好的简历,怎么做出好的简历、排出好看的排版我就不都写出来了,大家想知道都可以去网上搜索,都有很多。 1.1、我要讲的是我们投简历的一些雷区: 薪资不要填的很
初级 程序员: 初级 工程师 主要是指刚毕业的,职场上的技术新人。通常这类人会有一定的专业理论知识,所以也能够比较快的学习公司的常用框架、工具和 开发 技术。能够在上级/导师的指导下,理解相关的业务知识。 能够按照研发需求完成部分模块和功能的 开发 ,能够在别人的指导下解决研发中遇到的问题 掌握技能: 完成代码层面的CRUD操作 + 前端基础(HTML+CSS+JS+Jquery... 简历是用人单位做人事筛选的评判 标准 。如何让自己的简历被更多公司HR看到,并且通过技术部简历初步审核呢? 博主这次跳槽,只投过一次8个公司(小公司)的简历。然后就再也没有主动投递过简历,仅仅把自己的简历,就收到了很多大公司的面试邀请。那么博主是怎么做的呢? 首先准备一份真实的简历。真实不代表不能包装。至于怎么包装,这是一个技术活,我后面在讲。然后最好不要选择智联,51job,这些已经过时的...
最近很多大公司陆续开始有技术岗位的人事招聘。很多安卓 开发 攻城狮也跃跃欲试。在这里,博主根据最近面试 经验 简单写一篇《写给中 高级 安卓 开发 攻城狮进阶大公司的几点建议》。如果你现在也从事安卓 开发 2 以上(最好是3 以上),有独立 开发 的能力,项目 经验 在3个以上的,对现在的工作状态,环境,薪水不满意的,想跳槽到大公司的。可以稍微借鉴一下,提高自己进大公司的竞争力。 先简单说一下博主本身吧,如果你觉得比我还不...
一、版本更新说明: 2015.03.09--------文章发布 2015.03.11--------添加了Java IO机制中的种类和应用场景的解释,添加了Java内存模型的相关知识点 2015.03.13--------文章按技术 划分 ,增加J2EE规范的解释 2015.04.25--------增加对LRU缓存设计的描述 2015.04.26--------增加对比较流行的开源技术和