我有简单的安卓应用程序。应用程序包含大约 50 张图片,主要是 PNG 格式,但其中大部分是图标大小。大约有 5 种布局,并使用 Google 地图和 WebView。应用程序本身的重量低于 6MB。
然后我运行所有应用程序选项,然后查看应用程序设置 -> 缓存进程,我看到我的应用程序使用了 70 MB 的 RAM !!!
我可以调用finish()
方法,但这无济于事。什么可以帮助减少内存使用?
就连愤怒的小鸟也少用了!
创建一个可绘制文件夹并将所有这 9 个补丁图像放在那里。部署 onDestroy() 以填充活动
最好的方法是为您的应用程序使用 9 个补丁PNG 图像。这肯定会帮助您减少缓存大小以及应用程序大小。根据android生命周期过度部署应用程序代码,过度使用finish()会使活动进入onpause()状态,所以在你想杀死那个活动的地方使用onDestroy()。
请在不影响图像质量的情况下压缩每张图像,然后处理泄漏的内存。每个活动动作完成,然后完成该活动。一旦您退出应用程序。销毁所有正在运行的方法。如果您需要手动清除内存,请调用位图对象的 .recycle() 方法。我认为它可以帮助您减少内存。
可能是您使用创建不可变位图的方法加载位图并且没有充分释放它们(您必须小心处理它们的所有引用,否则垃圾收集器将永远不会释放它们正在使用的空间。
如果是这种情况,此参考可能会帮助您了解您正在使用的位图。
尝试这样的事情,它可能会帮助我猜:
@Override
protected void onDestroy() {
super.onDestroy();
unbindDrawables(findViewById(R.id.LayoutId));
System.gc();
}