前言
首先 ,对于Framework 是在Android 开发中是不可缺少的一部分,因为它涉及到底层原理,在开发过程中需要去反复的调用它底层的一些控件来完成某些功能的实现。
Framework早已成为了Android应用层开发事实上的行业标准,可以说,Framework是Android开发的深水区,也是衡量一个Android程序员能力的“试金石”,想要涨薪,Framework成为Android程序员必修课之一。
Framework源码学习分层
对于framework源码学习有很多,但是知识太多也要分主次。对于我重要的知识点我们要深入学习;然后其他有些不重要的我们就浅析一下。
那么在Framework源码中那些我们需要重要了解呢?我分部如下:
重要部分
- View
- ViewGroup
- AdapterView
- ListView
- GridView
- Window
- ViewDragHelper
- ItemTouchHelper
- SurfaceView
- TextureView
- VelocityTracker
- GestureDetector
- Scroller
- ScrollerCompat
- OverScroller
浅析部分
- WMS
- AMS
- PMS
- NMS
- InputSystem
等相关实现
主要知识介绍:
- Android事件分发机制:帮助你在写复杂自定义控件时协助解决事件冲突。
- View的测量布局和绘制机制,熟练掌握画布Canvas API、Android坐标系、触控事件等,熟悉绘图技巧、熟悉滑动原理。
- Android动画:熟练掌握动画Tween Animation、Frame Animation、Property Animation,有助于你写出交互体验好的自定义控件。
- Android多线程通信原理、线程控制、线程池、掌握Handler、Looper、ThreadLocal、Thread、Runnable、AsyncTask、HandlerThread、IntentService、Future、FutureTask、Callable等,掌握Java并发编程。
- 掌握Android进程间通信原理,试着分析Binder工作机制。
- 了解Activity启动过程,可以从startActivity()一步一步分析源码,过程不必拘泥于实现细节,掌握大致流程即可。
- 了解四大组件工作过程,和上面一个一样,从源码分析,一步一步来看WMS、AMS、PMS、NMS等如何通过binder完成进程间通信。
- 了解window创建过程、掌握window添加删除更新机制。
- 理解Context;如Application对应的Context、Activity对应的Context、Service对应的Context以及Context之间的关系
- 掌握Android资源加载机制
Framework源码笔记:


部分重要Java辅助知识点:
- 并发编程:线程池、ThreadLocal、Future、FutureTask、Callable等
- Java动态代理(cglib/jdk)、反射
- Java IO、集合类
- 序列化
- 注解
- IOC和AOP
- 类加载器
……
以上就是有关Android Framework源码的主次学习分层,如果还没有接触framework源码或者对源码不知道怎么去学习的,这里推荐这本《Framework源码精讲》大家有需要可以参考学习。以上内容都包含在内。有关源码我这里成列出一张思维图,作为参考,如下:

文末
在面试过程中很多面试者都在 Android Framework上屡屡碰壁,毕竟它始终穿插在 App 整个研发生命周期中,不管是从 0 到 1 的建立阶段,还是从 1 到 N 打磨阶段,都离不开Framework。
不管是面试中面试官一系列的framework连环炮问题,还是framework项目的应用都是尤为重要的。所以, 掌握Android Framework 一直是一个不光要熟练而且必须要精通的技能。
网友评论