android程序内存被分为2部分:native和dalvik,dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的,而bitmap是直接在native上分配的,对于内存的限制是 native+dalvik 不能超过最大限制。android程序内存一般限制在16M,当然也有24M的。
用以下命令可以查看程序的内存使用情况:
adb shell dumpsys meminfo $package_name or $pid //使用程序的包名或者进程id
用com.tencent.qqpimsecure为例:
具体每一项代表什么,参考:http://stackoverflow.com/questions/2298208/how-to-discover-memory-usage-of-my-application-in-android#2299813,我们比较关心的是这2行:
其中size是需要的内存,而allocated是分配了的内存,对应的2列分别是native和dalvik,当总数也就是total这一列超过单个程序内存的最大限制时,OOM就很有可能会出现了。
多数时候,发生OOM 都是在做一些跟图片相关的操作,以下提出一些建议尽量可以减少这种情况的发生:
|
1 .decode bitmap 的时候,尽量配置下Options,例如:inSameSize |
|
2 .Bitmap使用完以后,调用 bitmap.recycle()来释放内存 |
|
3 .如果应用是基于图片的应用,尽量采用LazyLoad和DymanicRecycle |
|
4 .decode bitmap 的时候,将decode代码 try catch 出来, catch oom error,避免程序crash,可以在 catch 里面做一些释放内存操作 |
http://stackoverflow.com/questions/2298208/how-to-discover-memory-usage-of-my-application-in-android/2299813#2299813
/**
* @author 张兴业
* 邮箱:xy-zhang#163.com
* android开发进阶群:278401545
*
*/
分享到:
相关推荐
ADB Debugging(adb调试命令) 3 adb devices 3 adb forward <local> <remote> 3 adb kill-server 3 无线网(Wireless) 3 adb connect [:] 3 adb usb 4 安装包管理命令(Package ...adb shell dumpsys [options] 22
查看详细应用信息: adb shell dumpsys package 查看应用安装路径: adb shell pm path 强制停止应用: adb shell am force-stop 复制设备里的文件到电脑上面:adb pull [电脑的目录] 查看设备信息:adb shell getprop...
android帧率可以通过adb shell dumpsys gfxinfo packages来查看,但是需要分析log,这种特别麻烦,分享一个免root获取帧率工具。注意:.jar文件在PC上运行。
easy-dumpsys:输出以下adb命令的脚本:`adb shell dumpsys activity `以更小,更容易和用户友好的方式..
在Android手机上, 通过使用adb shell命令可以进入android系统的shell, 该shell除支持一些常用的标准命令之外,还支持一些和android系统相关的其他命令, 这些命令可以打印出系统当前的状态信息。 dumpsys就是这样...
查看应用详细信息命令:adb shell dumpsys package “packagename” 调起 Activity命令格式:adb shell am start [options] 例如:adb shell am start -n com.tencent.mm/.ui.LauncherUI表示调起微信主界面 调起 ...
dumpsys命令这是安卓提供的调试命令.和名字的翻译一样,倾倒系统信息.主要用来查询系统服务的运行状态.列出所有的系统服务:adb shell dumpsys
App 信息 获取当前界面元素:adb shell dumpsys activity top 获取任务列表:adb shell dumpsys activity activities App 入口 adb logcat |grep -i displayed aapt dump badging mobike.apk | grep launchable-...
1. procrank //查看所有进程的内存占比,可以查看TOTAL 2. procrank | grep 包名 //查看特定进程内存占比 结果如下: procrank PID Vss Rss Pss Uss cmdline 2260 1462560K 24324K 21570K 20932K ...
用于查看进程的内存使用情况,也就是可以检查正在运行的android设备正在运行的程序的内存占用情况 (一篇相关文章 : http://www.cnblogs.com/wanqieddy/archive/2012/10/11/2719606.html) shell adb shell 获取...
adb 分析内存泄漏:2)多次进入退出后的占用内存`TOTAL`不应变化太大.adb 分析内存泄漏:1)验证可通过命令"adb shell dumpsys gf
2、输入包名:可在adb窗口输入命令查看“adb shell dumpsys window | findstr mCurrentFocus” 3、点击【开始】即可监控性能 4、监控过程会实时界面显示资源情况,点击结束后可以导出到excel文档中整理
一般能在「设置」-「关于手机」-「状态信息」-「IP地址」找到,也可以使用下文里 查看设备信息 - IP 地址 一节里的方法用 adb 命令来查看。 通过 IP 地址连接设备。 adb connect 这里的 <device-ip-address> 就是...
常用Adb桥调试Shell Command Description Comments dumpsys 清除屏幕中的系统数据n. Dalvik Debug Monitor Service (DDMS)工具提供了完整的调试、. dumpstate 清除一个文件的状态. logcat []... []... 启动信息...
使用 OnePlus One + CM 12.1 (Android 5.1) 测试用法将您的 Android 手机插入 USB 端口在设置 - 开发人员选项 - 配置 GPU 渲染中,选择In adb shell dumpsys gfxinfo python apgr.py 在您的网络浏览器中打开 apgr....
功能:此bat脚本实现多个设备连接电脑时,指订某一个设备进行拖拽安装apk,并在安装后启用apk 附注: 下载后需要修改包名为自己本地要...cmd获取apk的homeActivity命令 adb shell dumpsys activity | find "关键字
android monkey python3 统计性能信息cpu,men,fps,battery,flow 支持wifi,gprs统计 统计crash信息 fps统计:需要打开开发者里面的GPU呈现模式分析-在adb shell dumpsys gfxinfo中
通过查询百度,我们知道用命令行adb shell dumpsys activity activities可以查询,但是发现不方便,所以便有了AndroidRocket 效果图 安装体验 AndroidRocket.apk 使用方法 6.0 以上版本需要悬浮窗权限。所以打开...
adb shell dumpsys activity top 2)、我们的终端安装了pidcat.py脚本,然后执行如下的命令就可以打印当前运行app的全日志, pidcat.py packageName 3)、思考,为什么每次都需要这样重复的操作呢?一说到重复,...