你好朋友
我开发了一个应用程序,其中我有很多图像和声音,
我可以通过release()
方法轻松释放声音,但我无法释放图像
你能告诉我如何发布图片吗?
早些时候我使用system.gc()
功能,但它不适用于图像我是垃圾收集器
第二件事是你可以给我一个针对memory management
的预防措施( 关于图像,声音和编码部分 )
感谢
nik
答案 0 :(得分:0)
System.gc()
的调用只是运行垃圾收集器的建议。 GC不需要立即运行。
我相信这些复杂的应用程序将受益于使用MVC模型。模型(或逻辑)类可以将所需的图像和声音保存到缓存文件夹,只需将文件路径列表传递给视图(Activity),该视图可以按需读取和显示,取消引用任何无需的资产。需要更长时间
此外,只要有可能,通过降低分辨率(图像)或下采样(音频)来减少资产规模(图像和声音)将会有所帮助。
更新: - 要对图像进行下采样,请选中以下链接:http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inSampleSize
由于活动是切入点,MVC在Android中实施起来有点困难。因此,可以做的是可以创建单个“模型”对象,可以从任何地方访问它。类似地,也可以创建单个“Controller”对象。活动可以在需要资产时通知控制器,控制器会将请求转发给模型。