阅读Android源码

由浅入深,同时横向和纵向阅读

基础

Handler-Message-Lopper

Activity-Service

Fragment

View

MotionEvent

LayoutInflator

SurfaceView-TextureView

AsyncTask

Volley

android.util.*

进阶

Context

ClassLoader

Binder

WMS-AMS-PMS-NMS-IMS

第三方开源项目

EventBus

RxJava

Guava

再讲一下老罗给出的Android学习路线那两年炼就的Android内功修养-(罗升阳),他给出三纵三横的路线,

  1. 准备 (横向)

  2. dalvik虚拟机 (横向)

    Android系统的应用程序及部分应用程序框架是使用Java语言开发的,它们运行在Dalvik虚拟机之上,还有另外一部分应用唾弃框架在使用C/C++语言开发的。使用Java语言开发的应用程序框架老罗称之为Java Runtime Framework,而使用C/C++语言开发的应用程序框架老罗称之为C/C++ Runtime Framework,它们被Dalvik虚拟机一分为二。通过前面的学习,其实我们都已经了解Android系统的Java Runtime Framework和C/C++ Runtime Framework,因此,我们最后将注意力集中在Dalvik虚拟机上.
    Dalvik虚拟机简要介绍和学习计划

  3. 专用驱动 (横向),这些专用驱动就是指Logger,Binder和Ashmem,他们是整个Android系统的基石。

  4. HAL (纵向)
    硬件抽象层最适合用作Android系统的学习入口,它从下到上涉及到了Android系统的各个层次。
  5. Application Component (纵向)

    应用程序组件是Android系统的核心,为开发者提供了贴心服务,应用程序组件有四种,围绕应用程序组件,又有应用程序进程、消息循环和安装三个相关模块。

    • Activity
    • Service
    • BroadcastReceiver
    • ContentProvider
    • 进程
    • 消息循环
    • 安装
  6. ui (纵向)

    6.1 ui框架

    4.2ui渲染图

    上图可以看出关于Android的UI架构的三条主线: