之前一直想写一篇总结 Android 开发经验的文章,估计当时的我还达不到某种水平,因此思路跟不上,下笔又捉襟见肘。近日,思路较为明朗,因而从新操起键盘开始码字一番。先声明一下哈,本人不是大厂的程序猿。去年毕业前,就一直在当前创业小团队从事本身热爱的打码事业至今。下面总结是创建在我当前的技术水平和认知上写的,若有不一样见解欢迎留下评论互相交流。git
独立开发过几个产品,说一下本身的看法程序员
基本上有完整经历过一个产品的开发过程都应该清楚UI层是应用开发中最常变的一部分,app开发者绝大部分的时间都花在UI微调上,而业务逻辑基本上需求定下来不会变更太多,除非是产品迭代一些功能性的追加,否则就是不停的堆UI、堆UI,干过两年以上的开发者基本的开发能力已经有了,业务能力也差很少,这时候会遇到瓶颈,基本上就是找不到更加深刻的方向github
这个时候就能够考虑一下本身参与过的产品所使用到的技术是本身深究过的面试
打个比方,开发app的时候,通常会用到Http框架,这样的框架你是否有真正去实践过,或者有研究过它的实现思路和设计思想,咱们通常都会拿过来用,但为何要这样设计就是咱们须要去了解的,这能够提升你的架构的设计能力和编码的水平算法
除了框架,更多的是深刻framework层相关的,一些特殊的需求,好比动态热更新、插件化的实现,对应用开发者来讲都是新的挑战,还有对app的性能调优,产品上的优化,这些东西都是能够根据其中某一个点进行发散的。设计模式
只作UI层的尝试是没有什么前途的,无论干多少年,眼界也是极其有限,作技术的只能不停的深挖,构建完整的知识体系,才能打通本身的任督二脉。数据结构
我我的的一些观点,仅供参考。架构
那么如何构建完整的知识体系,深挖Android技术?app
不少工做了1-3年的Android人,想够一够 3w月薪的岗位,但在底层技术上却有很大的问题:框架
毕业几年,表面上用过不少技术,但都没能深刻学习,一年的工做经验,干了好几年。结果就是遇到实际问题时无从下手,最终仍是走着普通工程师的道路,和高手的距离愈来愈远。
都说三年是程序员的一个坎,可否晋升或者提升本身的核心竞争力,这几年就十分关键。
技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;
我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了很多精力),包含知识脉络 + 分支细节。
Java语言与原理;
大厂,小厂。Android面试先看你熟不熟悉Java语言
高级UI与自定义view;
自定义view,Android开发的基本功。
性能调优;
数据结构算法,设计模式。都是这里面的关键基础和重点须要熟练的。
NDK开发;
将来的方向,高薪必会。
前沿技术;
组件化,热升级,热修复,框架设计
网上学习 Android的资料一大堆,但若是学到的知识不成体系,遇到问题时只是浅尝辄止,再也不深刻研究,那么很难作到真正的技术提高。但愿这份系统化的技术体系对你们有一个方向参考。
最后我还整理了不少Android中高级的PDF技术文档。以及一些大厂面试真题解析文档。须要的朋友均可以点击GitHub直接获取方式
Android高级架构师之路很漫长,一块儿共勉吧!
本文由博客群发一文多发等运营工具平台 OpenWrite 发布