Android项目优化方案(持续更新中,想到什么写什么)

本文介绍如何通过使用Glide加载背景图而非直接设置,减少大尺寸图片作为背景时的内存占用,同时提供释放ImageView资源的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、对于不再使用的ImageView,除了设置visibility之外,还需调用imageView.setImageDrawable(null)将其图片置空。否则,除非这个ImageView被销毁,否则它的图片对象会一直占用内存。

2、使用Glide加载Layout的背景图,而不是直接写在布局的background里。

    Glide.with(this).load(R.mipmap.ic_launcher)
                .into(new SimpleTarget<GlideDrawable>() {
                    @Override
                    public void onResourceReady(GlideDrawable d, GlideAnimation<? super GlideDrawable> a) {
                        linearLayout.setBackground(d);
                    }
                });

两种方式内存占比的对比
上图明显的显示出这两种方式的优劣:对于一张1080P的图片,在布局中直接设置background属性,app的内存占用接近60M,而使用Glide之后,仅仅占用了8M的内存,降低了将近50M。
通过计算,1080*1920*24/1024/1024 = 47M,也就是说一张1080P的24位Bitmap会占用47M的内存,这也是为什么尽量避免直接使用大尺寸图片直接作为布局背景的原因。而这个内存的占用是和原图片占用空间大小无关的,不管原图是1MB还是20KB。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值