为了账号安全,请及时绑定邮箱和手机立即绑定

APP性能优化之内存优化

难度中级
时长 1小时15分
学习人数
综合评分9.70
27人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.6 逻辑清晰
讲的比较基础

最新回答 / 慕工程8532460
app都受这个限制,排除内置播放器厂商自己修改

最新回答 / 慕丝5395730
当前只有一个activity 运行activity使用了110个array对象  如果开启一个activity array数值增长 那么在关闭的时候就会对应关闭新开启的array对象,但是由于内存泄漏导致新开启的activity被Thread引用关闭不了 所以其中的array对象会一直增加
onTrimMemory()好像壁虎断尾求生

最新回答 / 慕慕4264866
老师讲的不错,代码如果现场敲估计效果会更好。。。
看源码可以知道,getMemoryClass获取的是系统属性中的dalvik.vm.heapgrowthlimit的值,getLargeMemoryClass获取的是dalvik.vm.heapsize,一般情况下,这两个值是不一样的,可以通过adb shell,cat /system/build.prop命令进行查看。第一个值是系统给每个应用分配的内存值,而第二个是用户通过设置largeHeap而获取的值,只不过一般系统是不允许用户申请更大的内存的
可以多讲点优化的哦,图片的可以不用讲了,好多关于图片优化的视频,最主要的是用了glide,根本都不需要优化图片图片内存了啊
dumpsys meminfo + pkgname
这里用‘+’之所以速度差距这么大,是因为每次循环都创建了一个临时sb对象。

最新回答 / qq_幸福客_0
官方的LruCache是维护一个队列,每次被使用到的都放到队头,队尾那个就是最少使用的,思路供你参考。
//这个app占用的内存,一旦超过这个内存大小,可能会出现内存泄漏,而导致app崩溃
int memClass = activityManager.getMemoryClass();//以M为单位
int LargememClass = activityManager.getLargeMemoryClass();//以M为单位
为什么在代码中查看freememory的值为0?跟其他两种方法的不一样。
竟然有说没有用的。。。。我现在才知道之前开发的时候有个list没有被回收的原因,,被第三方的网络访问劫持了,,
首页上一页12345下一页尾页
课程须知
最好有一定的android开发基础,并有做过一些app项目
老师告诉你能学到什么?
老师能让你知道内存优化的理论,优化的问题,方法等知识

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消