一、为什么要学习Android内核
做Android应用以来,但是总感觉蒙了一层雾,为什么是activity的生命周期是这样?为什么要分UI线程和其他线程?Android和Linux有什么区别?
我想要知其所以然,而不是天天学习搬砖,语言技术总是在变,程序员总要抓住其中不变的内涵。
因此,Android内核和源码学习之路开始了,既是总结以前看过的Android知识,也是督促自己继续深造。
废话到此,开始!
二、Android的系统架构图
每一个Android学习者总是要先看这张图的,这张图虽然简单,但是每个层次的开发者总能看到不一样的内涵
上图从上往下分为:(1)应用程序层(2)应用程序框架层(3)系统运行库层(4)硬件抽象接口层 (5)Linux内核层。
在开发应用的Android程序员看来,应该最关注第一、二层;更资深一点的程序员眼里应该会关注第三层(NDK开发);大牛级别的Android开发者,比如手机厂商的定制Android系统的人员,则会关注第四层。
其实这张图应该叫做逻辑系统架构图,因为从源代码工程上没有划分层次的说法。
总之,正是应了一千个XXX有一千个XXX的那句话,每个级别的程序员关注的、看到的都不一样。
三、Androi