AssetManager 的初始化流程:

1. AssetManager 构造函数调用 init 方法创建 AssetManager 对象。

2. 调用 ensureSystemAssets 初始化指向系统资源的 AssetManager 对象,并将其赋值给 sSystem。

3. system.makeStringBlocks(false) 构建系统资源表对应的资源池。

4. ensureSystemAssets 同样通过调用 init 方法进行初始化。

5. init() 是一个 native 函数,实现在 android_util_AssetManager.cpp 中。

6. 创建 AssetManager 对象:AssetManager* am = new AssetManager();

7. 创建资源配置对象:mConfig(new ResTable_config)

8. ResTable_config 描述的是当前设备配置信息,它是一个结构体,包含了资源维度中的相关信息,例如:mcc/mnc、language、orientation 等。

9. 添加默认资源:am->addDefaultAssets();