Android 如果应用程序图标为HD,则ActivityInfo.loadIcon会导致OutOfMemoryError

Android 如果应用程序图标为HD,则ActivityInfo.loadIcon会导致OutOfMemoryError,android,performance,Android,Performance,我遇到了这个问题,希望您能提供关于如何解决/避免这个问题的最佳方法的意见,并引起其他开发人员的注意 我正在使用此代码获取已安装的应用程序数据(标签、图标等)。一切正常,直到我发现我的应用程序在代码中没有明确的原因而使用了大量内存 List<ResolveInfo> availableActivities = getPackageManager().queryIntentActivities(intent, 0); for(ResolveInfo ri : availa

我遇到了这个问题,希望您能提供关于如何解决/避免这个问题的最佳方法的意见,并引起其他开发人员的注意

我正在使用此代码获取已安装的应用程序数据(标签、图标等)。一切正常,直到我发现我的应用程序在代码中没有明确的原因而使用了大量内存

    List<ResolveInfo> availableActivities = getPackageManager().queryIntentActivities(intent, 0);
    for(ResolveInfo ri : availableActivities){
        AppDetail appDetail = new AppDetail();

        appDetail.mAppIcon = ri.activityInfo.loadIcon(getApplicationContext().getPackageManager());
     }
List availableActivities=getPackageManager().queryInputActivities(intent,0);
for(ResolveInfo ri:availableActivities){
AppDetail AppDetail=新的AppDetail();
appDetail.mAppIcon=ri.activityInfo.loadIcon(getApplicationContext().getPackageManager());
}

事实证明,我安装了一个新的应用程序,它有一个3000*3000维度作为应用程序图标(应用程序开发人员的错误做法),这将内存使用量增加了47MB。这影响了我的应用程序性能,尤其是GridView滚动