Android开发者该如何提升自己?
说说我的两点建议:
1、横向发展:(适合有自己专精技术的人)
在自己擅长领域深入钻研的同时,会Hybrid开发(Flutter,RN,H5)之外,会web开发、微信小程序等,再过5年你也完全不用担心找工作。但是,这确实比较难,全栈容易发展成全菜,就是啥都知道,啥都不精!
2、纵向发展:(适合大多数人)
如果做应用开发,就往应用架构方向发展;如果做系统层开发,就钻研底层驱动。
可以从以下这些方面进行学习:
移动架构:
架构展示层:MVC、MVP、MVVM、Android Architecture Components;
架构层:模块化->组件化->插件化->沙盒/双开技术;
基础进阶:
比如高级自定义View、Android Framework层原理, App 管理机制等等;
JNI 和 NDK 开发也是比较常见,5G来了,招聘单位都在给自己公司规划小视频功能,然而我们却连NDK都不懂;
学习开发语言:
比如Kotlin,做底层C/C++是必不可少的,还有一个最容易忽略的 Java语言本身的高级面向对象思想;
源码:
看懂并且熟悉源码,熟悉其实现原理,争取做到能自己二次封装三方库。
如何学习Android Framework
既然Framework这么重要,那我们该如何学习呢?
关于如何学习Android Framework开发知识,最近小编有幸在字节跳动总监手里扒到这份Android framework高级开发笔记,部分知识章节发布到了在知乎上竟然1000+点赞,今天就拿出来分享给大家。
本笔记主要讲解了Framework的主要模块:
第一章: 深入解析Binder
Binder机制作为进程间通信的一种手段,基本上贯穿了andorid框架层的全部。所以首先必须要搞懂的Android Binder的基本通信机制。
本章知识点
- Binder 系列—开篇
- Binder Driver 初探
- Binder Driver 再探
- Binder 启动 ServiceManager
- 获取 ServiceManager
- 注册服务(addService)
- 获取服务(getService)
- Framework 层分析
- 如何使用 Binder
- 如何使用 AIDL
- Binder 总结
- Binder 面试题全解析
第二章: 深入解析Handler
相信大家都有这样的感受:网上分析 Handler 机制原理的文章那么多, 为啥还要画蛇添足整理这份笔记呢?不是说前人们写的文章不好,我就是觉得他们写的不细, 有些点不讲清楚,逻辑很难通顺的,每次我学个什么东西时遇到这种情况都贼难受。
本章先宏观理论分析与 Message 源码分析,再到MessageQueue 的源码分析,Looper 的源码分析,handler 的源码分析,Handler 机制实现原理总结。最后还整理Handler 所有面试题大全解析。
Handler这章内容很长,但思路是循序渐进的,如果你能坚持读完我相信肯定不会让你失望。
第三章: Dalvik VM 进程系统
Andorid系统启动、init 进程、Zygote、SystemServer启动流程、 应用程序的创建使用,Activity的创建、销毁 Handler和Looper。
第四章深入解析 WMS
窗口管理框架 系统动画框架 View的工作原理。
第五块 PackagerManagerService
包管理服务。 资源管理相关类
总结
【Android 详细知识点思维脑图(技能树)】
我个人是做Android开发,已经有十来年了,目前在某创业公司任职CTO兼系统架构师。虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
详细整理在腾讯文档;
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
m/doc/DSkNLaERkbnFoS0ZF)**
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
最后,赠与大家一句话,共勉!