内存优化
虚拟机的堆内存
adb shell cat /system/build.prop|grep dalvik.vm.heapstartsizeadb shell cat /system/build.prop|grep dalvik.vm.heapstartsize
关注如下:
- dalvik.vm.heapstartsize
开始的时候的堆大小,这个越小,可以开的越多,如果越大则一开始程序启动的时候速度就会比较快
- dalvik.vm.heapgrowthlimit
实际单个应用程序使用的最大内存
- dalvik.vm.heapsize
实际单个进程能使用的最大内存,如果heapgrowthlimit存在,则heapgrowthlimit生效
内存阈值调整
- /sys/module/lowmemorykiller/parameters/adj
此处放置的是优先等级编号,对于大于min_adj的进程,找到内存占用最大的进行清理 - /sys/module/lowmemorykiller/parameters/minfree
此处放置的是对应的最小释放阈值,到了某个阈值就会停止比这个高的所有level的进程
关于内存清理
通过SIGKILL信号清理
进程类型优先级
前台进程 > 可见进程 > 桌面进程 > 次要服务 > 后台进程 > 内容供应节点 > 空进程
内存隐患
- static
- Bitmap
- Background Picture
- View
- Application引用了Activity
- BroadCastReceiver/Service解绑
- Handler清理
- Cursor关闭
- IO流关闭
- 线程
- StringBuffer拼接