多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
#查看单个应用程序最大内存限制 ``` adb shell getprop|grep heapgrowthlimit |[dalvik.vm.heapgrowthlimit]: [96m] ``` - 对于内存的限制 这里纠正一下:是 dalvik heap不能超过最大限制,跟Native heap没有关系! - 这个96M是单个程序限制最大内存,而meminfo 里面的dalvik heap size 的最大值若果超出了96m 那就很可能会发生OOM - dalvik.vm.heapgrowthlimit和dalvik.vm.heapsize都是java虚拟机的最大内存限制,应用如果不想在dalvik heap达到heapgrowthlimit限制的时候出现OOM,需要在Manifest中的application标签中声明android:largeHeap=“true”,声明后应用dalvik heap 达到heapsize的时候才会出现OOM! 最大限制查看: #应用启动后分配的初始内存 ``` adb shell getprop|grep dalvik.vm.heapstartsize |[dalvik.vm.heapstartsize]: [8m] ``` #单个java虚拟机最大的内存限制 ``` adb shell getprop|grep dalvik.vm.heapsize |[dalvik.vm.heapsize]: [384m] ``` # 关于内存 - VSS – Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) - RSS – Resident Set Size 实际使用物理内存(包含共享库占用的内存) - PSS – Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存) - USS – Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存) USS 是针对某个进程开始有可疑内存泄露的情况, 是一个程序启动了会产生的虚拟内存,一旦这个程序进程杀掉就会释放! - 没错。不过USS需要通过root的手机。一般没有root的手机我们可以获取PSS。而PSS的话可以通过如下命令来获取 - 一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS ``` adb shell dumpsys meminfo <Package Name>|grep TOTAL ```