问:
想开发基于Android的交友软件,想问一下类似陌陌里图片销毁是如何做到.
答:
在Android开发的交友软件中,图片销毁通常采取以下几种方法:
1. 重用Bitmap对象:不要每次需要图片时都新建一个Bitmap对象,可以在初始化时调用BitmapFactory.decodeFile()方法加载图片资源,并将其缓存起来重用,需要显示图片时直接从缓存中获取。当图片不再需要显示时,不销毁这个Bitmap对象,而是将其从缓存中移除。这样可以避免频繁创建和销毁Bitmap导致的性能问题。
2. 手动回收Bitmap:当确定某个Bitmap对象不再需要时,可以调用Bitmap.recycle()方法手动回收其占用的内存空间。例如在Activity退出时回收Activity中使用到的所有Bitmap对象。
3. 设置Bitmap的最大内存:在创建BitmapFactory.Options对象时,可以调用setBitmapConfig()方法将其target属性设置为ARGB_8888等配置方式,同时调用inSampleSize设置图片的缩放比例,以此控制Bitmap对象占用的最大内存。
4. 使用软引用或弱引用:可以将Bitmap对象存储在软引用SoftReference或弱引用WeakReference中,在内存不足时这些引用指向的对象很容易被垃圾回收器回收,这样可以防止因图片而导致的OOM错误。
5. 加载较小的图片:可以在服务器端根据设备屏幕尺寸加载不同大小的图片,而不是加载原始图片,此方法可以在一定程度上减小图片所占用的内存大小。
6. 定期清理缓存:可以启动一个线程定期检查软引用或弱引用所指向的Bitmap,如果某个Bitmap长期未被使用则进行回收,以清理不必要的缓存图片,释放内存空间。
7. 设置内存缓存上限:可以使用LruCache等内存缓存,在其创建时设置最大缓存上限,当缓存达到上限时则进行清理,确保不会因图片缓存占用过多内存。
以上就是Android中常用的图片销毁和内存优化方法,合理运用可以确保交友软件有效防止因图片过多导致的性能问题和OOM情况。