网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
基于全栈发展的趋势,在自己擅长领域深入钻研的同时,横向扩展,不要关起门闭门造车。
而这里说的横向提升就是向前端转型,在除了要在APP会hybrid开发(web、native、前端
交互、硬件交互)之外,还要会web开发,微信小程序,H5。
比如服务端开发,我们做Android开发很多时候,要依赖于服务端接口返回数据,可以自己试
着搭建一下,至少要对服务端的结构理论、服务于服务之间通信、聚合是什么样的流程也是需
要有所耳闻。
第二:纵向重塑
一直以来,做Android开发有这么两个说法,如果是做应用开发,往应用架构方向发展比较合
适;如果是做系统层开发,往往底层驱动比较合适。
那具体应该学习什么呢?
1、移动架构
架构展示层—MVC、MVP、MVVM、Clean、Flux、AndroidArchitectureComponents;
架构层—模块化->组件化->插件化->沙盒/双开技术,比如可以双开微信,类似Docker,每
个页面都是插件,类似Vue.js中每个页面都是组件。
2、基础进阶
这个方向可能比较多,比如view、Android动画机制、四大组件工作原理、多媒体技术等等。
我们平常在工作中碰到的View滑动冲突问题,其实通过掌握View工作机制和Android触摸
时间体系就能轻易解决掉。
还有对于需要开发绚丽的动画效果,那么对于视图动画和属性动画一些特性必须有一定的了解。
Android中的四大组件工作机制其实底层应用的是Binder机制,我们不妨送AIdL这个接口来
了解Binder。
JNI和NDK开发也是比较常见的,特别对于一些做NDK项目为主的,这一块开发流程也是需
要掌握。
NDK开发也是佣人单位区分应聘者的手段之一,企业不一定要用到,但是可以通过是否掌握
NDK来筛选人才。
3、语言学习开发语言
这里要纠正一下学习语言不是跨行业,比如Kotlin可以说是Android世界的头等公民了,再
有时下比较火的Python和GO,另外做底层C/C+++是必不可少的。
4、源码
要求能看懂并且能够熟悉源码(自己选几个第三方库的也可以),要做到熟悉源码及其实现原
理,并且要能做到自己二次封装(或自己贡献三方库)三方库。
这样一来,你就会在维护中慢慢成为这个技术块的专家了,我觉得输出倒逼输入是一个不错的
学习方式。
1.深入解析微信 MMKV 源码
MMKV 是微信于 2018 年 9 月 20 日开源的一个 K-V 存储库,它与 SharedPreferences 相似,但又在更高的效率下解决了其不支持跨进程读写等弊端。
2.深入解析阿里巴巴路由框架ARouter 源码
组件化被越来越多的Android项目采用,而作为组件化的基础——路由也是重中之重。因此详细的分析阿里巴巴开源的路由框架ARouter。从源码的角度解释为什么这样使用,以及避免做什么,让你使用地更加顺滑。
3.深入解析AsyncTask 源码(一款 Android 内置的异步任务执行库)
AsyncTask 是 Android SDK 中提供的一个用于执行异步任务的框架,在 Android 兴起的早期被广泛使用,但如今已经被 RxJava、协程等新兴框架所取代。虽然它存在着一些不足,但我们还是可以尝试了解一下它的实现原理以及存在的不足。
4.深入解析Volley 源码(一款 Google 推出的网络请求框架)
Volley 是 Google 开发的一款网络请求框架,目前已停止更新。虽然目前大家的关注焦点都在 Retrofit、OkHttp 等第三方网络请求框架,团队的项目中所用的也是这两个框架,但 Volley 中还是有非常多优秀的设计思想值得我们去学习的。
5.深入解析 Retrofit源码
在Andrroid开发中,网络请求十分常用,而在Android网络请求库中,Retrofit是当下最热的一个网络请求库。
❤️篇幅有限,更详细的内容点击我获取完整版pdf查看❤️
6.深入解析OkHttp 源码
OkHttp是一个处理网络请求的开源项目,是Android端最火热的轻量级框架,由移动支付Square公司贡献用于替代HttpUrlConnection和Apache HttpClient。随着OkHttp的不断成熟,越来越多的Android开发者使用OkHttp作为网络框架。
作为 Android开发者,大家肯定都知道大名鼎鼎的butterknife。它大大的提高了开发效率,虽然在很早之前大家就开始使用它了,但是只知道是通过注解的方式实现的,却一直没有仔细的学习下大牛的代码。所以有必要系统的分析下 butterknife的实现原理。
8.深入解析Okio源码(一套简洁高效的 I/O 库)
Okio 中有两个非常重要的接口——Sink 以及 Source,它们都继承了 Closeable,其中 Sink 对应了我们原来所使用的 OutputStream,而 Source 则对应了我们原来所使用的 InputStream。
Okio 的入口就是Okio 类,它是一个工厂类,可以通过它内部的一些 static 方法来创建 Sink、Source 等对象。
9.深入解析SharedPreferences源码
SharedPreference 是一个 Android 开发自带的适合保存轻量级数据的 K-V 存储库,它使用了 XML 的方式来存储数据,比如我就经常用它保存一些如用户登录信息等轻量级数据。
10.深入解析EventBus 源码
EventBus 是一个 Android 事件发布/订阅框架。
传统的事件传递方式包括:Handler(消息处理机制,一般用于更新UI)、BroadCastReceiver(广播接收者)、Interface 回调。
EventBus优点:
-
Activity、Fragment、Service与线程之间的通讯是很常见的,EventBus正好可以屏蔽一些线程切换问题,简单地实现发布订阅功能。
-
代码简洁,使用简单,并将事件发布和订阅充分解耦。
11.Android 自定义注解初探
由于之前用到的很多开源框架如 GreenDao、EventBus、ButterKnife、ARouter 等都使用了自定义注解,因此有必要去研究一下自定义注解。
12.View 的工作机制源码分析
总结
最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的14套腾讯、字节跳动、阿里、百度等2021最新面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!