这一系列底层知识基于Android 6.0.1版本。网络
概述架构
在我仍是菜鸟的时候,有不少技术都不明白,也找不到答案,好比,apk是如何安装的?资源是怎么加载的?再好比,AIDL,只听未用过。四大组件也是这个问题,我只用过Activity,其余三个组件不但没有用过,甚至连他们是作什么的,都不是很清楚。框架
之因此是这样,是由于我一直从事的是金融类App开发的工做,这类App基本是由列表和详情组成。因此天天面对的是Activity,写好这两个类页面,再把网络请求框架封装好就够了。绝大多数App开发人员都是如此。但直到接触Android热更新和插件化等技术,我才发现只掌握这些还不足以支撑我四处游荡的灵魂.....插件
在网上看了不少文章,但大多都是给ROM开发人员看的,之贴出部分代码,繁多文章,琐碎的代码,让App开发人员看的头大。那该如何吸取这部分知识?cdn
能够简单的把Android底层知识分为两种: -type one:知道概念便可,好比Zygote,其实开发人员不须要了解Zygote的,知道有这么个东西是“云与天地”的就够了,相似的还有SurfaceFlinger、WMS这些概念。 -type two:须要知道内部原理,好比binder,须要了解他的架构模型,Client、server以及ServerManager。它们都扮演者哪些角色?他们是如何分工?server
这个系列将介绍如下概念,掌握这些底层知识,你就能够进军Android插件化大门了。 - binder; - AIDL ; - AMS; - 四大组件的工程原理; - PMS; - App 安装过程; - ClassLoader 以及双亲委托。资源