资源管理的框架
资源管理的框架大致可以分为两层:Java层和Native层。Java层封装着访问各种资源的接口,而Native层则为Java层提供了对应的接口,提高访问资源的速度。如下图所示。

图2 资源管理的框架
1) Java层
a) 类Resources
Ophone为访问不同类型的资源提供了不同的接口,这些接口被封装在类Resources中。例如访问字符串的接口getString(),访问 drawable类型的接口getDrawable()等等。该类管理着另外两个重要的类Configuration和AssetManager。
b) 类Configuration
类Configuration保存了当前系统中的配置,例如字体,语言等等信息。
c) 类AssetManager
类AssetManager提供了以数据流方式访问应用程序资源的方法。它通过native的方法来实现访问资源。AssetManager管理的资源有两个来源:一个是应用程序的资源,通过访问应用程序的apk文件得到;另一个是系统的资源,通过访问包含系统资源的apk文件获得。
2) Native层
Native层负责管理相应的apk文件,如上面所述,有两个文件,一个是系统的apk文件,另一个是应用程序自身的apk文件。Native层会把资源组织成一个资源表(Resource Table)用来提高访问资源的速度。