最好在运行时加载资源还是在内存上预先加载它们?

时间:2012-09-26 06:52:38

标签: android memory-management android-resources

我正在开发一个横跨多个类的应用程序,因此,我必须将应用程序的Context传递给所有使用全局字符串或整数的类,以便从strings.xml中提取它们或dimens.xml文件,而不是硬编码。到目前为止,我一直在加载资源,但是我想知道在构造函数中加载我需要的所有资源是否更有效,请记住它们只是字符串和整数值。

1 个答案:

答案 0 :(得分:0)

对于小对象(字符串,数字),您可以预加载它们,因为它不会占用太多内存。

对于大对象(图像,媒体),最好根据需要加载。

我对小对象的个人偏好是懒加载它们(根据需要加载但在加载后保存在内存中供以后使用),如:

public class Values{
     private static Object pref1;

    public static Object getPreference1(){
         if(pref1 == null){
             pref1 = heavyLoadingOfPref1();
         }
         return pref1;
    }
} 

正如,注意到我将它用于各种小对象,对于Strings(尤其是本地资源)来说,加载它们更加麻烦,只需在开始时加载它们(如果你已经定义它们那么它就更多了)可能会被使用)。