Android性能优化之游戏的Theme背景图

近期,对游戏的内存优化,通过内存快照发现,某个Activity的theme背景图 占用3M 多。考虑着手对齐进行优化。

问题

查看游戏中的内存快照,发现有一个图片bitmap 占用3M 多,设置在Activity的背景中:

查看PhoneWindow中源码: 发现其mBackgroundDrawable从Theme中中windwoBackground属性生成对应的图片

在程序的主入口的Activity中的theme中加入图片作为背景,往往用于解决启动黑白屏问题

发现游戏项目中闪屏页面中theme已经设置该背景图,因此这里,不需要考虑黑白屏问题。

接着发现,在游戏界面中设置该背景图, 用于游戏引擎渲染前的过度画面。但存在两次重复设置问题,一处是theme 中bg, 另外一处是游戏Root根布局中backgroud 也设置了该图片,如下所示:

解决方案

在游戏界面中将该theme中windowbackground 设置其他的颜色,去掉该背景。节省内存3M ,在android 8.0以下设备尤其重要。

编译新包,查看内存快照发现,少了该图片对应的bitmap, 少了3M的内存占用。

经过多台 设备测试,并不会出现白屏问题,证明该方案可行。

总结

  • 慎重使用Theme的windowBackgroud 设置背景图,建议使用动态view来设置背景图,不需要使用的时,移除,可节省内存。
  • 防止Theme的windowBackgroud和Activity的根布局windowBackgroud 重复绘制,造成内存浪费。
相关推荐
superior tigre7 分钟前
45 跳跃游戏2
算法·leetcode·游戏
CyL_Cly32 分钟前
杀戮尖塔2mod:二次元猎宝
windows·游戏
程序员陆业聪2 小时前
AI编码提效实战:Skill、Rule与上下文工程
android
cxr8282 小时前
从细胞到蜂群:基于康威生命游戏原理的多智能体编排
游戏
小辉同志3 小时前
45. 跳跃游戏 II
c++·leetcode·游戏·贪心算法
程序员陆业聪3 小时前
AI驱动需求梳理与Spec编写:让PRD自动变成技术方案
android
开开心心就好4 小时前
避免借电脑尴尬的故障模拟工具
科技·游戏·visualstudio·edge·pdf·电脑·powerpoint
李艺为5 小时前
Android Studio使用switch匹配资源id时报需要常量表达式解决办法
android
深念Y5 小时前
王者荣耀与英雄联盟数值设计对比:穿透、乘算与加算、增伤乘算更厉害,减伤加算更厉害
数学·算法·游戏·建模·游戏策划·moba·数值
聊点儿技术6 小时前
海外玩家伪装来源? 怎么用IP归属地识别
网络·tcp/ip·游戏·游戏安全·ip地址查询·查ip归属地·海外玩家