3

我创建了一个应用程序来加载所有已安装的应用程序。现在工作正常。但是对于一些有很多应用程序的手机/平板电脑,我的应用程序由于内存不足而崩溃。以下是获取应用程序信息的源代码

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);

有没有办法优化上面的代码以避免内存不足?谢谢你。

4

1 回答 1

4

请查看此链接:高效显示位图

同样在这个开源库项目:Universal Image loader

当您的应用程序需要显示大量位图时,它会超出应用程序分配的内存。此外,当它们显示在网格、列表或视图寻呼机中时,在创建每个视图时会消耗更多内存。因此,您需要将这些图像缓存在内存或磁盘中,并使用这些链接中描述的技术有效地显示它们。

添加

看看这个: 使用名称、包名称、版本和图标获取已安装的应用程序

UIL可接受的 URI 示例:

String imageUri = "http://site.com/image.png"; // from Web
String imageUri = "file:///mnt/sdcard/image.png"; // from SD card
String imageUri = "content://media/external/audio/albumart/13"; // from content provider
String imageUri = "assets://image.png"; // from assets
String imageUri = "drawable://" + R.drawable.image; // from drawables (only images, non-9patch)
于 2013-06-06T09:56:30.693 回答