oom: Android(Java)中常见的容易引起内存泄漏的不良代码 Android主要应用在嵌入式设备当中,而嵌入式设备由于一些众所周知的条件限制,通常都不会有很高的配置,特别是内存是比较有限的。如果我们编写的代码当中有太多的对内存使用不当的地方,难免会使得我们的设备运行缓慢,甚至是死机。为了能够使得Android应用程序安全且快速的运行,Android 的每个应用程序都会使用一个专有的Dalvik虚拟机实例来运行,它是由Zygote服务进程孵化出来的,也就是说每个应用程序都是在属于自己的进程中运行的。一方面,如果程序在运行过程中出现了内存泄漏的问题,仅仅会使得自己的进程被kill掉,而不会影响其他进程(如果是system_process 等系统进程出问题的话,则会引起系统重启)。另一方面Android为不同类型的进程分配了不同的内存使用上限,如果应用进程使用的内存超过了这个上限, 则会被系统视为内存泄漏,从而被kill掉。 (2)结论是内存不够用就叫oom.      Android设备内存一般比较小,容易引起oom.      Android每个应用程序在专有的Dalvik虚拟机实例中运行,Android分配固定内存。超出分配的内存,引起oom,系统KILL掉,程序结束。      Android系统进程OOM,机器重启。 内存泄漏:明明没有用。还回收不了,占用内存;
内存溢出: 解决OOM问题的代码思路:(压缩比就是采样率 ) OOM的出现及解决(加载图片)_第1张图片

1:得到(图片)的宽高信息, 建立一个图片信息类的对象,传入获取图片信息的文件,filename:string类型

获得宽高 0是默认
2:获取(屏幕)的宽高信息, 建立一个窗口管理类对象,通过静态方法 getsystemservice,调用系统底层获取窗口对象
通过输出打印发现 屏幕的宽高(小于)图片的宽高 就会出现OOM异常 3:开始解决 通过 图片的宽高 以及 屏幕的宽高 去得到一个压缩比的值


创建默认的压缩比值 进行判断 //scale:压缩比
OOM的出现及解决(加载图片)_第2张图片

4:加载一个图片到内存中,显示到ImageView上
OOM的出现及解决(加载图片)_第3张图片

更多相关文章

  1. 【Android 开发】:UI控件之 ImageView 实现适屏和裁剪图片的功能
  2. Android安全模型之Android安全机制(进程沙箱)
  3. [轉]Android的内存泄漏和调试
  4. Android内存分析工具 — Memory Profiler
  5. Android 内存溢出和内存泄漏的区别
  6. Android底下多线程下载远程图片
  7. Android APP内存优化之图片优化
  8. Android进程
  9. 如何检查 Android 应用的内存使用情况

随机推荐

  1. Android获取系统的内存使用率
  2. android 结束进程不起作用
  3. Android BaseExpandableListAdapter 教程
  4. Android - View的绘制流程一(measure)
  5. android assert 自定义格式被压缩
  6. eclipse中跳转查看android类的源码
  7. Android ApiDemo下载
  8. Android proguard(混淆)模板
  9. Android adb截屏命令
  10. Android快速开发之封装标题栏