설치된 모든 애플리케이션을로드하는 앱을 만들었습니다. 지금은 괜찮아. 그러나 많은 응용 프로그램이있는 일부 휴대 전화/태블릿에서는 메모리 부족으로 인해 앱이 다운됩니다. 다음은 소스 코드의 메모리가 부족하지 않도록 위의 코드 최적화 할 수있는 방법이 있나요 응용 프로그램 정보많은 앱 아이콘을 가져 오면 메모리가 부족합니다.
String appName = p.applicationInfo.loadLabel(packageManager).toString();
String packageName = p.packageName;
String appFile = a.sourceDir;
long lastUpdated = new File(appFile).lastModified();
Drawable icon = a.loadIcon(packageManager);
AppSize appSize = calculateSize(p.applicationInfo.sourceDir);
App application = new App(appName, packageName, lastUpdated, appSize.getSize(), appSize.getLongSize(), icon, false);
얻을 수 있습니다? 감사합니다.
내가 유니버설 이미지 로더를 사용하려고했습니다. 하지만 내 응용 프로그램은 장치 (다른 응용 프로그램의 아이콘)에서 아이콘을 얻었으므로 Uri 매개 변수를 displayImage() 메서드에 전달하는 방법을 모르겠습니다. 너는 어떤 생각을 가지고 있니? –
업데이트 된 답변 확인. 그 코드 스 니펫을 사용하여 응용 프로그램 아이콘을 GridView에로드 할 수있었습니다. 하지만 UIL을 사용하지 않았습니다. setImageDrawable()을 사용하여 직접로드했습니다. 나는 Drawbles 아이콘을 얻을 수 있었기 때문에. 많은 앱이 설치되지 않았으므로 OOM 문제가 발생하지 않았습니다. 아이콘의 경로를 얻을 수 있다면 (가능하지 않다면) file : /// 다음에 path를 사용하여 UIL의 imageView.displayImage() 메소드에 전달하면됩니다. 귀하의 문제에 대한 UIL을 사용하여 작업 솔루션을 생각해 내면 대답을 업데이트 할 것입니다. – SKK
감사합니다! 내 문제는 URL을 가져 와서 displayImage() 메서드에 전달하는 방법을 모르겠다. 어떻게하는지 아십니까? –