将解析Android应用程序打包过程中资源的处理流程,并总结Android资源调用的相关知识。
1. 解析 AndroidManifest.xml
首先,打包工具会解析应用程序的 AndroidManifest.xml 文件,获取应用程序的包名等信息。
2. 合并依赖资源
接下来,打包工具会将应用程序所依赖的资源包(例如 framework-res.apk)中的系统资源合并到应用程序的资源集合中。例如,当在XML布局文件中使用 android:orientation="vertical"
时, "vertical" 实际上就是系统资源包中定义的一个值。
3. 收集应用程序资源
打包工具会收集应用程序自身的资源文件,并将这些资源信息存储到 AaptAssets 对象的 mRes 中。需要注意的是,这里收集的资源不包括 values 类型,因为 values 类型的资源需要经过编译后进行特殊处理。以一个简单的应用程序为例,其资源可能包含 drawable、layout 和 values 三种类型。其中,drawable 类型可能包含一个名为 icon.png 的图片资源,该图片资源根据屏幕密度的不同,可能包含 res/drawable-ldpi/icon.png、res/drawable-mdpi/icon.png 和 res/drawable-hdpi/icon.png 三个文件。
4. 构建资源表
最后,打包工具会将收集到的资源信息添加到资源表 ResourceTable 中。与之前相同,values 类型的资源也不会被添加到资源表中。
暂无评论