面试
## 写在前面
记得我大二时“游手好闲”地自学Android并跟了老师作项目,到大三开始在目前的公司实习,至今毕业已有几年多,学习Android已经六、7年多了!但总感受知识点很零散,而且不够深刻,遇到瓶颈,因此有了这文章。算法
本文是我对自身的**Android编程技能的总结、思考和检讨,意在系统地、深刻地学习Android的重难点,使本身的能力上一个台阶。下面我将会罗列Android知识体系中比较高频、重要或难懂的知识点**,并将来会基于此文章列出的知识点一个一个学习研究,并写成一系列的文章,当作本身的学习总结笔记,也但愿童鞋们和我一块儿学习和交流~编程
> 说明:本文不是面试经验谈,而是自我总结。我也不打算像网上不少文章那样只列出点,说出结果,而没说缘由,而后死记硬背,知其因此然而不知其然。而我是打算对下面的知识点深刻学习,并对每一个知识点从源码或举例来写成文章,从而即知其然又知其因此然。我也不知可否作到,但我会坚持努力,看成立个flag吧~后端
数据结构
## 正文 Android进阶重难点架构
#### Javaide
- 集合:使用场景、源码阅读
- GC机制
- 虚拟机
- 对象内存分配工具
要学好Android,必需要有扎实的Java基础(固然,如今还有Kotlin)。这里只列出了四点,但Java的体系很是庞大,重难点固然不仅这些,列出来的是在实际项目和面试中经常使用或常见的。学习
#### Android经常使用/重要类
- Activity
- Handler
- HandlerThread
- AsyncTask
- Binder测试
Android这几个类在编程时是比较高频使用的,因此我打算细读下这几个类的源码。而这几个类也是面试常常被问到的,如Activity启动流程、Binder通讯原理等等,因此很是有阅读价值!
#### Android基础技术和高频面试知识点
- View事件传递
- View绘制流程
- SurfaceView的使用
- IntentService替换Service的场景
- Service保活
- Android序列化方式和区别
这些知识点算是比较基础的,但也很重要!惋惜在实际项目中不多用到,因此常常会忘了这些知识。因此打算把其写成文章,加深本身印象。
#### NDK和JNI
提及这个我就头疼,相信不少人跟我同样,若是只是调用C层接口还好,若是要写C的代码,就很尴尬了。但咱们不能老是逃避困难,而是迎难而上!因此我下定决心来跨过内心的这道坎了!
#### 算法与数据结构
- 队列、栈、链表、有向图
- 排序
- 查找
- 红黑树
在家的几本算法书都尽是灰了... 罗列的点不难,算是须要基本掌握的吧,但我老是看了忘了,忘了又看,仍是记不得... 因此也打算写文章加强记忆。另外,若是作应用级别的开发,掌握这几个知识点基本是够用的了,毕竟Java的集合也提供了排序接口。但仍是须要掌握下,毕竟不一样算法使用到不一样场景。
#### 插件化/热修复
做为Android进阶必掌握的技能,这个不会都很差意思说本身的Android开发的。以前看了一个月RePlugin的源码,感受道行还不够。不少代码的处理或适配看得似懂非懂,如Binder的机制等。因此这个须要大量的知识做为支撑才能完成看懂,将来再战!
#### 第三方优秀开源库
- RxJava
- Glide
- OKHttp
“RTFSC (Read The F**king Source Code )”。每一个人都有本身的编程风格,若是不借鉴、不参考下别人的代码,眼界永远这么小,难以进一步提高编程境界。因此阅读他人优秀的代码是很是有必要的!
#### Android常见的架构模式
- MVC
- MVP
- MVVM
解耦!解耦!Android的架构模式的使用重中之重无非就是解耦了。开发代码不难,维护代码才是最难的。若是代码都不少的解耦,把维护成本下降,工做效率天然提升。
#### Gradle和Groovy
相信如今大多数人都用Android Studio开发了,Gradle做为构建工具真是很是强大,我的以为它完成能够取代Java的编译期注解,有过之而无不及。由于连文件也能在编译期做修改,很是强大,因此也很是值得学习。
#### 通用技能
- TCP/HTTP
- SQL
- 自动化测试
- 抓包
除了Android的知识点意外,还须要掌握一些通用的技能。毕竟懂多点才有底气跟后端怼嘛哈哈。
## 写在最后
因为本文罗列的知识点是根据我自身总结出来的,而且因为本人水平有限,没法所有说起,欢迎大神们能补充~
未来我会对上面的知识点一个一个深刻学习,也但愿有童鞋跟我一块儿学习,一块儿进阶。
**提高架构认知不是一蹴而就的,它离不开刻意学习和思考**。
**这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给你们**梳理了多年的架构经验,筹备近1个月最新录制的,相信这份视频能给你带来不同的启发、收获。



**领取方式:查看我主页**
最近还在整理并复习一些Android基础知识点,有问题但愿你们够指出,谢谢。
但愿读到这的您能转发分享和关注一下我,之后还会更新技术干货,谢谢您的支持!
**转发+点赞+关注,第一时间获取最新知识点**
Android架构师之路很漫长,一块儿共勉吧!