gc for alloc freed

2018-11-17 22:53:01

int[] bgPicture = { R.drawable.one, R.drawable.two, R.drawable.three,

            R.drawable.four, R.drawable.five, R.drawable.six };


for (int i = 0; i < bgPicture.length; i++) {

            if(i>4){

                i=0;

            }

            picture.setImageResource(bgPicture[i]);

        }


在数组中选择图片然后显示,然后。。。logcat不断显示GC回收。最后程序黑屏。


例子:D/dalvikvm(27235): GC_FOR_ALLOC freed 836K, 27% free 9653K/13116K, paused 101ms, total 104ms


LOG信息 描述

freed 836K 此次回收836K

27% free 可用内存空间27%

9653K/13116K 活跃对象与总大小具体指

paused 101ms 暂停进行垃圾回收用时101ms

total 104ms 总用时104ms

此种情况是当GC发现内存不足时,开始执行回收,频繁执行GC导致,所以无法执行别的线程。


  • 2019-08-31 14:05:00

    JNI Crash:异常定位与捕获处理

    在Android JNI开发中,经常会遇到JNI崩溃的问题,尤其带代码量大,或者嵌入了第三方代码的情况下,很难进行问题定位和处理。本文将介绍两种常见的JNI崩溃处理方法,包括: 每个JNI调用后进行异常检测处理(适用于JNI代码量很小的情况) 捕获系统崩溃的Signal,并进行异常处理(适用于JNI代码量大,难以每句话后面都进行异常检测的情况)