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 重复绘制,造成内存浪费。
相关推荐
方白羽2 小时前
Android APK安全防护
android·安全·apk
小黄人软件2 小时前
AndroidStudio老项目 macOS运行BlueTooth蓝牙串口助手(Android+Studio源码).rar
android·macos
00后程序员张2 小时前
苹果App Store上架指南:费用、原理与步骤详解
android·ios·小程序·https·uni-app·iphone·webview
天神哥哥啊2 小时前
cocos联调注意事项-安卓
android
TDengine (老段)2 小时前
TDengine TSDB 实战排障四(升级与兼容)
android·java·大数据·数据库·物联网·时序数据库·tdengine
蓝速科技3 小时前
政务自助终端信创选型与无人值守落地方案
android·大数据·数据库·人工智能·科技·技术分享·政务
硫酸锌014 小时前
在手机上运行Python增量备份手机数据到PC电脑
android·windows·python
hai_android5 小时前
子 View 被压小时,如何向父容器"告状"?——MEASURED_STATE_TOO_SMALL 向上传递机制
android·kotlin·android jetpack
AFinalStone5 小时前
Android 7 多用户源码解析(七)系统服务的多用户感知处理
android·系统架构·多用户
怪奇云呼军5 小时前
从 ElevenLabs 看工具调用:闪电智能 Voice Agent 的企业集成验收设计
android·大数据·运维·服务器·网络·人工智能·kotlin