Android学习路线

观点

郭霖
学的东西涉及的面并不广,但是我一般会尽可能研究得深入一些。通常我都会尽量去阅读英文原文资料,包括Android官方文档、StackOverflow等,这个时候Google就是我最好的帮手。

黄俊东

对于“理所当然”的东西,花时间去研究一下“为什么是这样子的”?
用到某个方法时,反问自己,为什么要使用这种方法,是否还有其他方法,这些方法有什么区别。
多思考、多总结、勤动手,不要只是停留在表面。
毕竟这个世界上,好看的脸蛋太多,独立而有趣的灵魂太少。

资源

求职现状

工具

学习路线

成长为中级

  1. 首先,想好自己要不要到高级。“有了这个定位,并且努力朝着这个目标去努力,然后内心深处就会有一个感觉,这个感觉就会成为你的B格。”
  2. 写好自己的博客。学习讲究总结、融会贯通,而博客刚好可以给我们一个写总结的地方。日常中多总结、多思考。
  3. 参加开源计划。
  4. 研究android中一些高级的概念。等中级知识积累到一定程度,量变引起质变。在核心技术上也有所提高,比如aidl、remoteviews、android内部的运行机制等。
  5. 多看书、看源码和做项目,平时多种总结;
  6. 不能停留在一些基本api的使用上,应该往更深层次的方向去研究,比如activity、view的内部运行机制,比如Android内存优化,比如aidl,比如JNI等,并不仅仅停留在会用,而要通过阅读源码,理解其实现原理不能停留在一些基本api的使用上,应该往更深层次的方向去研究,比如activity、view的内部运行机制,比如Android内存优化,比如aidl,比如JNI等,并不仅仅停留在会用,而要通过阅读源码,理解其实现原理;
  7. 同时这个阶段对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习同时这个阶段对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习;
  8. android的方向也很多,高级UI,移动架构师,数据结构与算法和音视频FFMpeg解码,如果你对其中一项比较感兴趣,就大胆的进阶吧!android的方向也很多,高级UI,移动架构师,数据结构与算法和音视频FFMpeg解码,如果你对其中一项比较感兴趣,就大胆的进阶吧!

如何成高级

  1. 拥有扎实的Android中级技能。
  2. 在某个领域有自己深入理解,能独当一面。

高级工程师的要求是:熟练掌握android api,理解android的内部运行机制,对view、activity等一些常用的android内部运行机制熟练掌握,对常见的android知识点都有涉猎,并且还能够解决一些比较偏门的问题(需要基于android的内部机制),对android的性能调优和适配有认识,代码风格较好并且具有一定的设计模式,在工作上除了技术还要有业务的理解,能够指导初中级工程师,在工作中能够独挡一面。同时在解决问题的能力上达到一个全新的档次,即能够用恰当的手段去解决无法google出来的问题的答案。

高级学习资料

知识点

一年
1.简历可以稍微夸大一些(不是作假简历,只是包装一下项目经验、个人技能等),毕竟竞争对手太多了,项目经验思路可以写清晰简洁一些,突出你的能力,适当出现一些Retrofit、RXJava、ReactNative、Glide等专业术语,否则你会发现根本收不到面试邀请电话。

2.大多数公司都会考一些很基础、但易忘的纯java知识点。栗:数组、链表的数据结构及区别;String源码的思考(equal,hasCode等);基础算法(冒泡,递归);Array、List、Set、Map小结;多线程知识点(run()、start()区别,wait,sleep区别);设计模式(主要都是考单例模式)。。。。。。

3.常见的Android问题。Activity、Service、Fragment生命周期;ListView&&RecyclerView;Binder、Handler通信(即使不懂原理也要扯点出来,哈哈);自定义View知识点;MVP、MVC架构;图片三级缓存;内存泄漏解决方法;ANR分析;应用登陆注册界面及逻辑的设计。。。。。。

4.可以尝试在面试过程中占主导地位,比如通过提一些犀利的问题,如果一直是面试官问问题,那么你很可能就被pass掉了(说的就是我!)。

5.要向阐明公司为什么要录用你而不是其他人。工作经验>工作年限,个人发展培养前景好等隐藏属性一般都会被小公司直接忽视掉,所以需要简洁明了同时略自信地说明你需要多少时间适应,适应后是否有能力独自承担开发任务等强有力的优势。毕竟小公司肯定是把利益及费用放在第一位的,人才与技术也是服务于他们的产品而存在的。

6.最有效的办法就是暂时别辞职,或者别裸辞,慢慢沉淀下来学点干货,RN、架构、设计模式等等。等你觉得跳槽后完全可以超越成千上万的竞争者拿到一份满意的offe才离职,因为目前对于初级工程师来说,好工作实在是太难找了!实在是太难找了!难找了!

重点内容
要有跨界思维
1,传统替换加密中,曾被认为是无法被破解的。但使用语言学和统计学的方法成功破解。

发展方向

横向

基于全栈发展的趋势,在自己擅长领域深入专研的同时横向扩展,不要关起门来闭门造车。而这里说的横向提升就是向全前端转型,在除了要在APP会hybrid开发(web、native、前端交互、硬件交互)之外,还要会web开发,微信小程序,H5。比如服务端开发,要对服务端的结构理论、服务与服务之间通信、聚合是什么样的流程也是需要有所耳闻。

纵向

1.移动架构:架构展示层: MVC、MVP、MVVM、Clean、Flux、Android Architecture Components;架构层:模块化->组件化->插件化->沙盒/双开技术,比如可以双开微信,类似Docker, 每个页面都是插件,类似Vue.js中每个页面都是组件。

2.基础进阶:这个方向可能比较多,比如VIEW、Android动画机制、四大组件工作原理、多媒体技术等等。我们平常在工作中碰到的View滑动冲突问题、其实通过掌握View工作机制和Android触摸事件体系就能轻易解决掉。还有对于需要开发绚丽的动画效果,那么对于视图动画和属性动画一些特性必须有一定的了解。Android 中的四大组件工作机制其实底层应用的是Binder机制,我们不妨从 AIDL 这个接口来了解 Binder。

JNI 和 NDK 开发也是比较常见,特别对于一些做 SDK 项目为主的,这一块开发流程也是需要掌握,NDK开发(含JNI)也是用人单位区分应聘者的手段之一,企业不一定要用到,但是可以通过是否掌握NDK来筛选人才。

3.语言学习开发语言:这里我要纠正一下学习语言不是跨行业,比如Kotlin可以说是Android世界的头等公民了。再有时下比较火的Python和GO,另外做底层C/C++是必不可少的。

4.源码:要求能看懂并且熟悉源码(自己选几个第三方库的也可以),要做到熟悉源码及其实现原理。并且要做到能自己二次封装(或自己贡献三方库)三方库。这样一来,你就会在维护中慢慢成为这个技术块的专家了。我觉得输出倒逼输入是一个不错的学习方式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值