android - Android 应用程序中的高内存使用率 (50MB)

标签 android android-layout android-studio memory mobile

我正在为一个学校项目开发一个小型电子鸡,我对应用程序使用的内存量有很大的疑问。起初我为应用程序分配了 200MB,经过一些研究后,我找到了一个简单的修复方法,通过将 drawable 文件夹重命名为 drawable-nodpi 将其减少到 50MB。但这仍然远远不够。在调查问题时,我确定它与我的布局和 UI 元素有关,因为我删除了所有代码并仅使用布局启动了我的应用程序,内存使用量根本没有下降。

在这里你可以看到我的布局: App-Layout and Memory-Usage

图像大小平均约为 30kb,如果我计算内存中可能图像的最大大小,我大约有 1.5MB。

那么所有的内存是从哪里来的呢?这怎么可能?

如果您想自己查看应用程序,可以从 github 获取项目: https://github.com/kruben95/TamaStudent

如果有人能帮助我或给我一些提示,我会很高兴。

最佳答案

我下载了你的项目,这里有一些建议:

1) 即使在磁盘上它们占用 30-40 kb 的图像也是高分辨率 - 在内存中它们是位图并且位图占用大量内存,例如 body 部分 - 1200x1980 像素,每个像素 4 个字节,这是 9,5兆字节的内存!??现在,在获得此位图之后,它还必须对其进行缩放 - 这是额外的内存,正如您所看到的,每张图片有超过 10 兆字节!!这是非常高的。

2) 降低图像分辨率。无需如此高分辨率地显示它们。

3) 从图像中去除不可见的部分 - 因为我看到非常大的部分是清晰的 但它需要内存!

4) 尝试以编程方式制作一些图像,例如圆圈等。

5) 在代码中 - 如果您只需要做背景,请不要将 alpha 用于 View ,直接将此 alpha 设置为颜色:#00FFFFFF - 这是带有 alpha 0 的白色。如果您在 View 上使用 alpha,则需要用于重绘的额外内存(性能较低)。

6) 使用标签 Best practices 在 google internet 上搜索你的相关主题,你会发现很多有用的信息)

关于android - Android 应用程序中的高内存使用率 (50MB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37646765/

相关文章:

java - 在 fragment 中使用外部字体

android - 如何在 Android 中重用 fragment 的 View ?

android - 无法创建新项目 - 此位置必须没有项目

java - 如何获得中性按钮的标准颜色

java - Android 应用内评论弹出窗口使应用崩溃

java - org.json.JSONException : No value for id - IMPOSSIBLE TO SOLVE

android - ListView:在滚动条顶部显示固定标题(或使用 dispatchDraw 在另一个顶部绘制 View )

android - 删除 Activity 中的顶部蓝色

android - 错误 :Execution failed for task ':app:transformClassesWithJarMergingForRelease' [Error]

Android - ellipsize ="end"不显示三个点