Android内核剖析之阅读记录

概述

《Android内核剖析》–柯元旦
偏原理,2011年电子工业出版社出版

第一章:Linux基础知识

1.1 Linux文件系统
1.2 Linux启动过程
Android对应的uboot/fastboot
1.3 常用Linux命令
export:用于将每个变量值的作用域设为全局范围
example: Terminal 字符串名字太长,export PS1=me
1.4 shell脚本备忘
脚本本身不代表任何计算机语言,也不属于计算机语言范畴,到目前为止,人们把那种不需要编译的程序文件称之为脚本.
不同脚本需要不同的解释器来解释执行.

1
2
#! bin/bash
echo "Hello World" # show a message

1.5 Make脚本备忘
Make脚本多用于自动编译过程,具体可以参考GNU Make

第二章:Java基础

2.1 类装载器 DexClassLoader
动态装载Class文件的ClassLoader类.在Java中使用.
DexClassLoader是在Android中使用,用来装载Dex文件.
2.2 JNI 调用机制
Java Native Interface
2.2.1 Java 访问 C
2.2.2 C 访问 Java
C 调用Java只能在Java调用C中进行.
2.2.3 在C中使用持久对象
2.3 异步消息处理线程
Android中的异步消息处理机制:Message、MessageQueue、Looper、Handler
Looper还有一个特殊的概念,那就是ThreadLocal,ThreadLocal并不是线程,它的作用是在每个线程中存储数据.
Handler的主要任务是将一个任务切换到指定的线程中执行.

第三章:Android源码下载以及开发环境的配置

有Eclipse中导入Android源码的方法

第四章:使用Git

第五章:Binder

Binder用于进程间通讯,英文的意思是别针、回形针.
由四个部分组成:Binder驱动、ServiceManager、Binder服务端、Binder客户端

  1. Binder驱动
  2. ServiceManager
  3. Binder服务端
  4. Binder客户端
    Android-Binder进程间通讯机制

第六章:Framework概述
分服务端、客户端和Linux驱动端
服务端-WMS、AMS
客户端-
Linux驱动端-SurfaceFlinger和Binder
APK的启动过程
每个Activity最少有三个线程
第七章:理解Context
第八章:窗口创建过程 讲到了Token
第九章:Framework的启动过程
讲述了Framework的启动过程
第十章:AMS内部原理 <重点>
第十一章:从输入设备中获取消息
第十二章:屏幕绘制基础–SurfaceFlinger
第十三章:View工作原理 <重点>
第十四章:WMS工作原理 <重点>
第十五章:

参考文献