
Android内存
古月印象星空
热爱生活,热爱工作
展开
-
Android内存泄露利器(hprof篇)
我们可以使用代码生成hprof,然后使用批处理hprof文件,然后用MAT进行对多个hprof文件比较分析。一、批处理配置文件批处理配置文件config.bat如下:rem the following var is for getProcessState.batset rawDatadir=rawDataset processName=com.sec.android.app原创 2011-12-07 15:31:05 · 13971 阅读 · 4 评论 -
Android中应用程序drawable图片资源占用内存的统计
在实际项目中,我们可能需要统计我们应用程序中drawable下的图片或文本在都载入的情况,最多会占用多少内存 ,以对其做定性分析。 关于Android中图片占用内存的计算,请参照《Android中图片占用内存的计算》以下就是一个简单的统计代码:static void test(Context context){ final String TAG="robin"原创 2013-05-03 14:25:51 · 4282 阅读 · 0 评论 -
Android中如何查找内存泄露
1、首先确定是否有内存泄露及哪个程序造成。1.1、内存泄露已弹出out of memory对话框的情况。这种情况很简单,直接看对话框就知道是哪个应用的问题了。然后再分析该应用是否是因为内存泄露造成的out of memory对话框。1.2、对于有内存泄露,但没造成弹出out of memory对话框的情况使用《Android中如何查看内存》中介绍的各种方法进行分析,确定是否有内存泄原创 2011-12-07 18:55:12 · 27177 阅读 · 6 评论 -
Android内存泄露利器MLT(整合篇)
本人网易博客原文:http://hubingforever.blog.163.com/blog/static/171040579201243071752744/一、前言MemoryLeakTool是Robin Hu编写的一款用于监测Android进程内存使用情况的脚本工具,简称为MLT。主要功能:1、用于测试一个或多个进程是否有内存泄露。2、用于自动提取一个Hprof文件,原创 2012-05-30 21:26:20 · 3530 阅读 · 0 评论 -
Android内存泄漏简介
前言 不少人认为JAVA程序,因为有垃圾回收机制,应该没有内存泄露。其实如果我们一个程序中,已经不再使用某个对象,但是因为仍然有引用指向它,垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用,这就造成了内存泄露。如果我们的java运行很久,而这种内存泄露不断的发生,最后就没内存可用了。当然java的,内存泄漏和C/C++是不一样的。如果java程序完全结束后,它所有的对象就都不可原创 2011-12-07 18:53:31 · 7908 阅读 · 2 评论 -
Android中图片占用内存的计算
本人的网易博客原文在Android开发中,我现在发现很多人还不会对图片占用内存进行很好的计算。因此撰写该博文来做介绍,期望达到抛砖引玉的作用。 Android中一张图片(BitMap)占用的内存主要和以下几个因数有关:图片长度,图片宽度,单位像素占用的字节数。一张图片(BitMap)占用的内存=图片长度*图片宽度*单位像素占用的字节数注:图片长度和图片宽度的单位是像素。图原创 2012-08-12 11:06:08 · 43869 阅读 · 11 评论 -
Android应用程序的默认最大内存值
原文: http://www.ziyouku.com/archives/android-applications-to-modify-the-default-maximum-memory-value.html Android应用程序的默认最大内存值为16M,有些应用程序可能会出现内存溢出,譬如:ERROR/AndroidRuntime(264): java.lang.OutOf转载 2012-03-13 15:53:04 · 11214 阅读 · 0 评论 -
Android进程内存上限
Android应用程序都是在自己单独的进程中运行。Android为不同类型的进程分配了不同的内存使用上限,如果应用进程使用的内存超过了这个上限,则会抛出Out Of Memory异常,接着进程也被kill掉。原创 2011-12-07 21:19:02 · 4036 阅读 · 0 评论 -
Android中如何查看内存(下)
实例1 int cnt=0; final static int kBufferMinSize=1000; final static int kBufferMaxSize=2000; StringBuffer strBuffer=new StringBuffer(kBufferMinSize); StringBuffer原创 2011-12-07 18:57:42 · 6781 阅读 · 0 评论 -
Android内存泄露利器(内存统计篇)
我们可以通过adb shell "dumpsys meminfo %curProcessName%"命令得到某个进程的内存使用情况。getMemoryState.bat主要用于解析该命令返回的内存,得到NativeSize,DalvikSize,NativeAllocated,DalvikAllocated,NativePSS,DalvikPSS等。它把不同时期得到的数据按时间前后为顺序以逗号原创 2011-12-07 17:20:22 · 2771 阅读 · 0 评论 -
Android内存之VSS/RSS/PSS/USS
TermsVSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)一翻译 2011-12-07 21:11:35 · 17840 阅读 · 0 评论 -
Android中使用"running services"查看service进程内存
从Android 2.0开始,在Settings中加入了一个新的activity("Running Services" activity),它用于显示当前运行的每个Services进程的内存使用情况及整个手机的内存大致使用情况。可以通过Setting->Applications->Running services进入该activity。Running Services界面如下:图1:原创 2011-12-07 18:59:06 · 4902 阅读 · 0 评论 -
Android内存泄露利器(全自动篇)
我写了可执行文件启动器Launcher.jar及一些批处理,通过它们就可以自动的以一定的时间间隔提取Hprof和进程的内存信息一、需要的库可执行文件启动器:lib\Launcher.jar注:关于Launcher.jar的源码请参考《可执行文件启动器(上)》和《可执行文件启动器(下)》二、自动提取Hprof。runHprofPicker.bat文件:java -原创 2011-12-07 17:23:38 · 2303 阅读 · 0 评论 -
Android内存泄露利器(RSS内存统计篇)
前言RSS(Resident Set Size)表示实际使用物理内存(包含共享库占用的内存)。因为它包含了共享内存,所以他的意义不及PSS。所以现在查看内存使用情况一般参照PSS。因此现在一般不使用getProcessState.bat,而是使用getMemoryState.bat关于getMemoryState.bat的更多内容请参照《Android内存泄露利器(内存统计篇)》原创 2011-12-07 15:57:25 · 3856 阅读 · 0 评论 -
Android中如何查看内存(上)
文章参照自:http://stackoverflow.com/questions/2298208/how-to-discover-memory-usage-of-my-application-in-android#2299813像Linux这种现代操作系统的内存使用是很复杂的,因此很难准确的知道你的应用程序使用了好多内存。查看内存使用的方式有很多种,但是各个方式查看到的结果可能会有微略不同原创 2011-12-07 18:56:42 · 66378 阅读 · 7 评论