Android 知识体系整理

基础的知识点全部略过,下面都为进阶知识点

Java 篇

1. 泛型

熟练掌握泛型语法是在java开发中涉及到的架构、封装、源码学习等方面的必备技能,属于相对高级和难掌握的语法,简单的泛型看似简单,但是真的要运用的灵活自如还是有一定难度。
涉及的知识点:

  • 泛型的原理
  • 泛型的擦除
  • 泛型的通配符:? 、extend、super
  • 泛型多级继承时候的传递
  • 泛型类泛型方法
  • pces
    在应用方练手方面,首先从http通用工具类返回类型封装入手,再mvp框架封装,再rxjava的源码学习进阶。

ps : 以上知识点只是根据印象举例,并不全面,需要自己多搜索,多看几篇博客,因为一个人写的博客难免有疏漏和盲区,一旦漏掉了就很难再回来看了,所以一个知识点一要是全面掌握,二是要理解,这样知识点才能掌握的全面且扎实,不然后面不懂了还要回头看,自己的一点体会,下同。

2. 注解

注解的用法没啥好讲的,主要是一个知识点:编译时注解,可以学习下ButterKnife,我也写过一篇博客。

3. 集合

java的集合类,面试必问,可以去搜索java集合的系列文章,但看一篇是没用的。这里可以问的知识点非常多,涉及数据结构和算法。

  • hashmap实现原理,里面的数据机构,散列链表什么的。
  • ArrayList的数据结构,扩容等知识。
  • LinkedHashMap 双向链表结构,和LRU的联系
    等等。
    可以找一些面试题来检验下
4.反射
5. 多线程、并发

多线程主要是线程池的一些使用和原理
并发主要是一些java的并发类和关键字还有锁的知识点,这里也需要找相关的专题系列文章。

6. 设计模式

建议看书和系列博客,之后可以结合实际项目和源码,也有一本书《android设计模式和源码》。这个知识点需要长期实践和积累。

7. java虚拟机

书:《深入理解java虚拟机》选择章节读。

Android 篇

1. Handler

老生常谈的问题了

  • handler子线程发送给子线程
  • handler原理、源码分析
  • UI线程的looper怎么初始化的
  • HandlerThread
2. AIDL
  • AIDL生成的类源码看一看,怎么设计的(AIDL)
  • 不用AIDL手写binder通讯
3.UI
  • 自定义View,paint的api,Canvas的api
  • view的绘制流程
  • 自定义ViewGroup
  • View和ViewGroup的区别,ViewGroup是如何处理View的(通过canvas变换)
  • Android的事件分发机制 对手势、事件等的处理
  • DecorView、Window、ViewRootImpl等概念
  • Activity、Window、View三者之间的关系
  • 属性动画、原理
    可以分析下Android 从xml文件到屏幕显示的过程
    推荐:
    https://segmentfault.com/a/1190000010041829
    https://hencoder.com/ui-1-2/
    https://blog.csdn.net/harvic880925/article/details/50995268
4.Framwork

主要是源码的分析

  • Layoutinflater的源码,inflate()的三个参数,Layoutinflater.Factory
  • Activity的启动流程,setContentView()的源码分析
  • ServiceManager
    ....
    这是一个漫长的过程
    应用框架层主要还是看《Android开发艺术探索》这本书吧,另外还有一本就是《Android 进阶之光》,再深入就是《android 源代码情景分析》和罗升阳的博客了。
5.其他
  • 热修复原理
  • 插件化
  • 其他就是比较深入、专业的领域了,比如音视频、直播,OpenGL、NDK等等。

周边

1.计算机网络

http、https等协议原理

2.操作系统

《操作系统原理》《现代操作系统》

3.构建
  • grovvy基础语法
  • 理解grovvy的dls,闭包:https://www.jianshu.com/p/6dc2074480b8
  • gradle构建:https://www.infoq.cn/article/android-in-depth-gradle
  • 自定义task、插件
  • Android gradle插件源码,主要目的是可以使用插件中的api
  • 官方文档,很有用

知识点太多,提供平时收集的一些面试题,自己对着查漏补缺吧:

  • http://www.codeceo.com/article/android-5-years-interviews.html
  • https://mp.weixin.qq.com/s?__biz=MzI2OTQxMTM4OQ==&mid=2247484286&idx=1&sn=e5843fb79d8a36ab063699b5fb9a0711&chksm=eae1f62cdd967f3a576396f8402581326b835b8327ed5f20f23896fcd22c2115e77863b4115b#rd
  • https://www.jianshu.com/p/df438d183164
  • https://www.jianshu.com/p/de4793a4c2d0
  • https://blog.csdn.net/wwj_748/article/details/51278689
  • https://mp.weixin.qq.com/s/9fZVubXx8rx_LTKDCiL79w?
  • https://mp.weixin.qq.com/s?__biz=MzI3MDE0NzYwNA==&mid=2651435744&idx=1&sn=00977cbf9feb8574d99a7a763253a8db&chksm=f1289b9bc65f128d35b80432883d14e76ae7aee124d1e5f5466a5531cb93cc7cd1400116e883&scene=0&key=7dffde877c8eec6a69ad7165311ddd3fe535807051bc1a38808cd9b120d68c59a27f5141b26c33264aa8afc5187c96709381de25c8153911e9f07d53e58f8e2ea26b0c560a2e5c5b40b74672fa937ba4&ascene=0&uin=MjMxNzYyMTEyMA%3D%3D&devicetype=iMac+MacBookPro13%2C1+OSX+OSX+10.12.5+build(16F73)&version=12020810&nettype=WIFI&fontScale=100&pass_ticket=CS4tRVgmL%2BIyrrej0VqQxVtfeVMY%2BFemnsMh4e7Et8WrERKx%2BPnpZtOqN0Lo2jBv
  • https://mp.weixin.qq.com/s/fTfudY1DBYS5JiSkPnbjAg
  • https://mp.weixin.qq.com/s/YRhtIRZ0j1k08EsNnjN8Wg
  • https://xiaozhuanlan.com/android-interview
  • https://mp.weixin.qq.com/s?__biz=MzA3ODQ5MTAwOQ==&mid=2448004187&idx=1&sn=cbc27a22af611bd2136c76098c75c43a&chksm=8b5cc8b5bc2b41a3b15e14479da0da0b6b681f6b8e673199d1d791f90ffecaaa07bab136b38e&mpshare=1&scene=23&srcid=1130tDJqUP7ncIMP4p0jMZpO#rd
  • https://juejin.im/post/5b1480646fb9a01e6b2c0b82
  • https://mp.weixin.qq.com/s/WVBJqqF6HGGJyzI1hc4fPg
  • https://mp.weixin.qq.com/s/XREOq821aaY0gwrlwrOQJA
  • https://github.com/geekcompany/ResumeSample
  • https://mp.weixin.qq.com/s/H1Nm3upXT-f-jyf2rpT7XQ
  • https://github.com/pengMaster/BestNote
  • https://juejin.im/post/5cd7ca8e6fb9a031f10ca9af
  • https://juejin.im/post/5cdd7a94f265da03775c781a
  • https://juejin.im/post/5c8b1bd56fb9a049e12b1692
  • https://mp.weixin.qq.com/s/7vH4yRvd_lrmCQVmrY5skg
  • https://mp.weixin.qq.com/s/Fm43VAd8npSkFkCk3uP_JA
  • https://juejin.im/post/5c70520b6fb9a04a0730fe12
  • https://juejin.im/post/5c6a9b6a6fb9a049f362a71f

你可能感兴趣的:(Android 知识体系整理)