本人写了一个服务,是独立进程,在项目里上加了android:process=":remote",并注册了一个常驻型广播,目的是实现监听屏幕解锁发来的广播,将服务启动(如果运行的服务不存在的话);
重新启动服务是大致是这样写的:
如果不存在那么:
Intent serviceIntent = new Intent(WebsocketService.ACTION);
context.startService(serviceIntent);
这样来启动服务;
但是问题来了:每次停止掉服务,然后锁屏,解锁,服务又启动,经过多次操作,服务的内存会变大;
于是我跟踪了下内存:
起始的内存:
Heap Size :5.160MB,Allocated:3.179MB,Free:1.981MB,%Used:61.61% ,#objects:60186
服务大小为10M时的内存:
Heap Size :5.941MB,Allocated:3.783MB,Free:2.158MB,%Used:63.68% ,#objects:73986
服务大小差了几M,但是数据上只增加了0.8M左右,请问多出来的这些内存是哪里的?
------解决方案--------------------
不是 MAT有elipse的插件 http://site.douban.com/widget/notes/350758/note/167481484/ 自己看吧
------解决方案--------------------