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();}





原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 3岁宝宝怕生胆小怎么办 2岁宝宝怕生胆小怎么办 1岁半宝宝认生怎么办 宝宝认人一直哭怎么办 七个月宝宝认人怎么办 一个月宝宝认人怎么办 2个多月宝宝认人怎么办 婴儿认人一直哭怎么办 六个月宝宝认人怎么办 十一个月宝宝断奶后辅食怎么办 6个月宝宝不会坐怎么办 7个月宝宝坐不住怎么办 三个月宝宝白天闹觉怎么办 3个月宝宝不追声怎么办 一岁宝宝垃肚子怎么办 新生儿四天没大便怎么办老放屁 新生儿四五天不大便怎么办 新生儿五天没解大便怎么办 婴儿五天没拉大便怎么办 宝宝45天不拉屎怎么办 儿童4天不大便怎么办 4一5天不大便怎么办 俩月的宝宝便秘怎么办 宝宝6天没大便怎么办 新生儿3天不大便怎么办 50天宝宝几天没有大便怎么办 宝宝一吃奶就拉怎么办 2个月宝宝不拉屎怎么办 吃苹果呛到气管怎么办 三个月宝宝五天没拉大便了怎么办 三个月的宝宝五天不大便怎么办 十天婴儿不大便怎么办 宝宝断奶不喝牛奶怎么办 宝宝喝羊奶大便干燥怎么办 4个月宝宝睡眠少怎么办 8个月婴儿不吃奶粉怎么办 满月的宝宝黄疸高怎么办 刚满月的宝宝黄疸高怎么办 换奶粉孩子不喝怎么办 宝宝整夜哭闹不睡觉怎么办 满月宝宝整夜不睡觉怎么办