Android应用分配的内存空间
来源:互联网 发布:spss软件介绍 编辑:程序博客网 时间:2024/06/06 02:01
Android应用程序都会默认分配一定的内存空间,有些应用如果没有控制好内存的使用,就会造成内存溢出。
http://hubingforever.blog.163.com/blog/static/171040579201212414542373/
点击打开链接
如何查看自己手机堆空间大小:
1.连上手机adb shell
2.getprop dalvik.vm.heapsize
现在手机内存都比较大,4G 384M 6G 512M
我自己应用中测试,长截屏达到25页时,会发生内存溢出,导致图片保存缓慢。
07-11 09:41:03.952 29009 30246 E AndroidRuntime: java.lang.OutOfMemoryError: Failed to allocate a 218311212 byte allocation with 1048576 free bytes and 190MB until OOM07-11 09:41:03.952 29009 30246 E AndroidRuntime: at dalvik.system.VMRuntime.newNonMovableArray(Native Method)07-11 09:41:03.952 29009 30246 E AndroidRuntime: at android.graphics.Bitmap.nativeCreate(Native Method)07-11 09:41:03.952 29009 30246 E AndroidRuntime: at android.graphics.Bitmap.createBitmap(Bitmap.java:879)07-11 09:41:03.952 29009 30246 E AndroidRuntime: at android.graphics.Bitmap.createBitmap(Bitmap.java:856)07-11 09:41:03.952 29009 30246 E AndroidRuntime: at android.graphics.Bitmap.createBitmap(Bitmap.java:823)07-11 09:41:03.952 29009 30246 E AndroidRuntime: at com.gionee.longscreenshot.ScreenShotService.cutAndComposeFinalBitmap(ScreenShotService.java:1054)07-11 09:41:03.952 29009 30246 E AndroidRuntime: at com.gionee.longscreenshot.ScreenShotService.-wrap0(ScreenShotService.java)07-11 09:41:03.952 29009 30246 E AndroidRuntime: at com.gionee.longscreenshot.ScreenShotService$SavePictureThread.run(ScreenShotService.java:765)bitmap等消耗资源的类的使用中要注意回收,处理内存溢出
/** * 返回一个不可变的源位图的位图的子集,改变了可选的矩阵。新的位图可能与源相同的对象,或可能是一个副本。它初始化与原始位图的密度。如果源位图是不可变的 * ,请求的子集是一样的源位图本身,然后返回源位图,没有新的位图创建。<br> * 方 法 名:createBitmap <br> * 创 建 人: <br> * 创建时间:2016-6-7 上午11:14:24 <br> * 修 改 人: <br> * 修改日期: <br> * @param source 产生子位图的源位图 * @param x 子位图第一个像素在源位图的X坐标 * @param y 子位图第一个像素在源位图的y坐标 * @param width 子位图每一行的像素个数 * @param height 子位图的行数 * @param m 对像素值进行变换的可选矩阵 * @param filter 如果为true,源图要被过滤。该参数仅在matrix包含了超过一个翻转才有效 * @return 一个描述了源图指定子集的位图。 Bitmap */public static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter) {Bitmap bitmap;try {bitmap = Bitmap.createBitmap(source, x, y, width, height, m, filter);} catch (OutOfMemoryError localOutOfMemoryError) {gc();bitmap = Bitmap.createBitmap(source, x, y, width, height, m, filter);}return bitmap;}public static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height) {Bitmap bitmap;try {bitmap = Bitmap.createBitmap(source, x, y, width, height);} catch (OutOfMemoryError localOutOfMemoryError) {gc();bitmap = Bitmap.createBitmap(source, x, y, width, height);}return bitmap;}/** * 回收<br> * 方 法 名:gc <br> * 创 建 人: <br> * 创建时间:2016-6-7 上午9:32:37 <br> * 修 改 人: <br> * 修改日期: <br> * void */private static void gc() {System.gc();// 表示java虚拟机会做一些努力运行已被丢弃对象(即没有被任何对象引用的对象)的 finalize// 方法,前提是这些被丢弃对象的finalize方法还没有被调用过System.runFinalization();}
阅读全文
0 0
- Android应用分配的内存空间
- 程序内存空间的分配
- Linux内存空间的分配
- android查看当前应用占用的内存空间
- C/C++内存空间的分配
- 内存空间的回收和分配
- c++分配内存空间的重复
- c++分配内存空间的重复
- Java内存空间的分配、回收
- 分配内存空间
- 分配内存空间
- 分配内存空间
- C的编译器对内存空间的分配
- java 变量 分配内存空间的一道题
- iPhone中管理malloc分配的内存空间
- 设备驱动中分配的内存空间编译
- TI DSP--内存空间的分配和指定
- 【转】程序中内存空间的分配
- 一键启动多个jar文件
- 617. Merge Two Binary Trees
- OpenWrt netifd学习笔记
- 关于Solidworks引入text数据建造曲线
- win10下Java程序在cmd中能够编译却无法运行的解决方法
- Android应用分配的内存空间
- 【二叉树】合并二叉树
- Markdown学习之(3)-插入图片
- Mybatis 出现The error may involve defaultParameterMap
- java中对配置文件properties读取
- Web开发中的显示与隐藏
- 磁盘主分区转换为逻辑分区
- mysql 赋权设置
- HDU 4370 0 or 1(最短路)