前言
前段时间突然接到同行好友的电话,要和我聊聊天。
他说他在深圳熬了 6 年 Android,拥有中大型企业的工作经历,去年选择去中原腹地的新一线大城市——郑州。结果在郑州经过一年的努力和挣扎,终于把公司试探性的项目给暂停了,无奈之下领了盒饭,回归自由身。
然后习惯性地先放松半个月,然后开始奋力寻找新的机会。但没想到遇到了一些意外情况,让他无法全身心地投入到找工作这件事上(没有认真准备项目,也没有重拾高端技术)。在这期间,陆陆续续面试了一些公司,感觉找工作就像相亲,要么觉得公司不合适,要么被公司拒绝。
现在早晨醒来揉揉眼睛,才发现今天居然是 6 月的最后一天。马上进入 7 月了,已经两个多月没有收入,感到崩溃。。。。。生活好难。。。。。。
感觉这是今年很多同行会遇到的情况,不是说你技术多么不好,公司的抗压能力不强就容易发生这种事情,但是如果想去一些抗压能力强的大公司,好公司,就必须先提升自己。
到这里又遇到了 学习瓶颈
我这个8年的老码农,体会比较深。其实稍微干上一些年头,就是这个样子,看起来像是“学习热情下降”“懒得学习”,但本质上呢,两个原因:
1、本身的技能增强,能够应付日常工作,没有刚入行时那么大的压力了。
2、学习的边际效益递减,所以开始考虑投资/收益比了。
刚入行的时候,技术一丁点的进步,都能带来非常大的成就感,至少能少挨点骂,是不是?积累到一定时候,就可以跳个槽涨点工资啥的。但三五年过后,
我已经会了:
熟悉Android OS系统体系结构、framework层;
良好的Java技术功底,精通多线程、socket通信、文件操作等java底层技术;
精通Android的基本组件使用,熟练使用Android各种布局与控件,熟练运用各种动画特效;
熟悉View的绘制原理,精通自定义动画以及自定View的开发
有丰富的Android性能优化经验,善于解决系统崩溃,内存溢出和兼容性问题;
熟悉JNI技术和代码混淆
有单元测试、自动化测验及相关框架经验;
有良好的代码习惯,要求结构清晰,命名规范,逻辑性强,代码冗余率低,代码注释清晰;
是不是很多感觉也都会了,但是实际上我们可能会的都是这些知识的浅层面。
因为你没有一个系统的学习规划来学习的话,你的知识就是一盘散沙,
Android开发到底需要学习哪些?你要知道
对于现在的Android及移动互联网来说,我们需要掌握的技术,我做了一个清单:
- 泛型原理
- 反射原理
- Java虚拟机原理
- 线程池原理
- 注解原理
- 注解原理序列化
- Activity知识体系(Activity的生命周期、Activity的任务栈、Activity的启动模式、View源码、Fragment内核相关、service原理等)
- 代码框架结构优化(数据结构、排序算法、设计模式)
- APP性能优化(用户体验优化、适配、代码调优)
- 热修复
- 热升级
- NDK(c编程、C++、JNI、LINUX)
- 如何提高开发效率?
- MVC、MVP、MVVM
- 微信小程序
- Hybrid
- Flutter
这么多需要学习的知识,如果你没有一个好的方向的话,学起来就十分苦难
针对对于没有学习方向,知识不体系的人这里分享一张阿里P7成长路线图
还不知道怎么学习的人可以直接照着我这个学习路线一个个的去学习,知识不体系的人可以参考瞅瞅我整理学习资料总之希望能够帮到你们!
更多的面试题指南已经被整理成了PDF,
详细Vx关注公众号:Android老皮
《Android Framework源码开发揭秘》
本学习手册深入剖析了Android系统源代码,详细讲解了Android框架初始化过程及主要组件的工作原理,旨在通过实例和案例介绍 Android Framework 的核心概念和技术,从而帮助开发者更好地理解 Android 应用程序的设计和开发。 该手册适合具有一定 Android 应用开发经验的程序员,希望能通过深入学习 Android Framework 来帮助开发者更好地理解和掌握这一技术。