OPPO Android面试题及参考答案 (上)

性能优化方面,讲一下图片内存占用计算,以及如何避免持有不必要的引用。

在 Android 中,计算图片内存占用主要与图片的尺寸和像素格式有关。对于一张位图(Bitmap),其内存占用大小可以通过以下方式估算:内存占用 = 图片宽度 × 图片高度 × 每个像素占用字节数。例如,常见的 ARGB_8888 像素格式,每个像素占用 4 个字节。如果一张图片宽度为 100 像素,高度为 100 像素,采用 ARGB_8888 格式,那么它的内存占用就是 100×100×4 = 40000 字节。

要避免持有不必要的引用,首先要注意在异步加载图片时,当图片加载完成并且已经使用后,要及时释放对图片的引用。比如在使用图片加载库(如 Glide 或 Picasso)时,这些库内部会自动管理一些引用,但如果自己手动进行图片加载和处理,就需要特别小心。

在处理 Adapter(如 ListView 或 RecyclerView 的 Adapter)中的图片时,当一个视图被回收重新用于显示其他数据时,要确保之前的图片引用被清除。例如,在 RecyclerView 的 onBindViewHolder 方法中,不要让旧的 ViewHolder 一直持有之前加载的图


http://www.niftyadmin.cn/n/5797032.html

相关文章

openjdk17 从C++视角看 String的intern的jni方法JVM_InternString方法被gcc编译器连接

symbols-unix 文件部分内容 JVM_IHashCode JVM_InitClassName JVM_InitStackTraceElement JVM_InitStackTraceElementArray JVM_InitializeFromArchive JVM_InternString 要理解在 symbols-unix 文件中包含 JVM_InternString 方法的原因,我们需要从构建过程、符号…

CSS系列(27)- 图形与滤镜详解

前端技术探索系列:CSS 图形与滤镜详解 🎨 致读者:探索CSS的艺术表现力 👋 前端开发者们, 今天我们将深入探讨 CSS 图形和滤镜效果,学习如何创建引人注目的视觉效果。 基础图形 🚀 几何形状…

红队规范:减少工具上传,善用系统自带程序

近年来,随着网络安全领域的快速发展,渗透测试工具的数量呈爆炸式增长。尤其在2017年以后,各种工具层出不穷,功能丰富、名目繁多。这为红队工作提供了更多选择,但也带来了新的挑战和风险。工具的泛滥并不代表我们在实际…

Python OCR 文字识别

一.引言 文字识别,也称为光学字符识别(Optical Character Recognition, OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技…

机器学习04-为什么Relu函数

机器学习0-为什么Relu函数 文章目录 机器学习0-为什么Relu函数 [toc]1-手搓神经网络步骤总结2-为什么要用Relu函数3-进行L1正则化修改后的代码解释 4-进行L2正则化解释注意事项 5-Relu激活函数多有夸张1-细数Relu函数的5宗罪2-Relu函数5宗罪详述 6-那为什么要用这个Relu函数7-文…

springboot vue 会员收银系统 含源码 开发流程

一、系统概述 演示地址: 开源版本:http://8.146.211.120:8083/完整版本:http://8.146.211.120:8086/(移动端  http://8.146.211.120:8087/) 适用范围:适用于各类实体店铺,如养生店、药品店、鲜…

Redis篇--常见问题篇6--缓存一致性1(Mysql和Redis缓存一致,更新数据库删除缓存策略)

1、概述 在使用Redis作为MySQL的缓存层时,缓存一致性问题是指Redis中的缓存数据与MySQL数据库中的实际数据不一致的情况。这可能会导致读取到过期或错误的数据,从而影响系统的正确性和用户体验。 为了减轻数据库的压力,通常读操作都是先读缓…

基于单片机的程控电源显示控制电路设计

摘要 : 介绍了基于单片机程控电源显示控制电路的硬件设计和软件实现 , 该设计可以实现程控电源的输出显示和手动控制功能。 实践验证 , 该设计具有很好的使用效果和工程价值 。 关键词 : 程控电源 ; 显示控制 ; 单片机 0 引言 程控电源广泛地应用在工业控制和科学研究的…