Android工程在运行的时候往往需要引用资源,这里的资源包括三种资源:系统资源、工程资源、第三方资源、插件资源等。不管是什么样的资源,最终都能通过一个入口来获取,而这个入口就是Resources对象。Resources对象描述了android资源文件,例如android工程下的res、asset目录等除了.class文件的资源,我们可以认为,所有涉及到获取资源的地方,都可以使用Resources来获取。事实上我们在代码中读取asset目录下的资源时常常直接使用Assetmanager来直接获取对象的流数据,但AssetManager也是属于Resources对象的一个属性,都同时指向相同的对象。
深入Resources源码的描述,Resources对象中有如下几个重要的成员属性:
/*package*/ static Resources mSystem = null;
/*package*/ final Object mAccessLock = new Object();
/*package*/ final Configuration mTmpConfig = new Configuration();
/*package*/ TypedValue mTmpValue = new TypedValue();
/*package*/ final AssetManager mAssets;
private final Configuration mConfiguration = new Configuration();