Android性能优化之内存优化(二)

内存优化实例

bitmap优化

1.使用适当分辨率和大小的图片
2.及时回收内存
在使用完bitmap后一定要及时调用bitmap.recycle()来释放内存资源,但android3.0后bitmap被放到heap中,所以就不需要手动进行释放了
3.对图片进行缓存
使用内存缓存(LruCache)和硬盘缓存(DiskLruCache)可以更好的使用bitmap
4.在考虑到需求的情况下,可以对图片进行压缩

代码优化

1.对常量使用static修饰符
2.尽量减少成员变量
3.减少不必要的对象
4.少使用枚举和迭代器
5.对Cursor Receiver Sensor File等对象,要非常注意对他们的创建 回收和注册 反注册
6.避免使用IOC框架,因为注解对性能的损耗较大
7.使用RenderScript OpenGL来进行非常复杂的绘图操作
8.使用SufaceView来替代View进行大量频繁的绘制操作
9.尽量使用视图缓存,少使用inflate().

什么是内存

在android中的内存是指手机的ram
为了了解内存,需要引出几个概念
寄存器registers:在处理器的内部,是速度最快的存储场所,在程序中无法控制
栈stack:存放对象和基本类型数据的引用
堆heap:堆内存存放new创建对象和数组,由GC管理
静态存储区域static field:固定的位置存放应用程序运行时一直存在的数据,java在内存中专门划分了一个静态存储区域来管理一些特殊的数据变量;
常量池Constant pool:常量池就是该类型所用到的常量的一个有序集合

        ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        //获取堆大小的方法
        int heapSize = activityManager.getLargeMemoryClass();

获取android系统内存信息

Process Stats

一种系统内存监视服务,可以通过手机中Setting>Developer options>Process Stats打开
也可以:
1.打开cmd
2.cd sdk的目录
3.adb start-service //打开adb服务
4.adb shell dumpsys procstats

Meminfo

手机:Settings>Apps>Running
也可以:
adb shell dumpsys meminfo

GC

即使调用了System.gc(),也只是建议进行回收.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值