共 7 篇文章 |
|
1、检查所有持有对Context对象强引用的对象的生命周期是否超出其所持有的Context对象的生命周期。然而,如果用户在网络请求过程中关闭了Activity,正常情况下,Activity不再被使用,它就有可能在GC检查时被回收掉,但由于这时线程尚未执行完,而该线程持有Handler的引用(不然它怎么发消息给Handler?),这个Handler又持有Activity的引用,就... 阅437 转3 评0 公众公开 14-09-17 11:18 |
Shows common reference paths from GC roots to the object.This of course does not have to be a leak, as sometimes Activities are kept alive longer than other objects but let’s take a look if anything is preventing them from getting GC. To do this, list all the objects with incoming references. As the histogram has sho... 阅151 转2 评0 公众公开 14-04-26 23:34 |
sh-3.2# du /data -h -d 1 0 /data/htcfs 56.0K /data/misc 4.0K /data/app-private 4.0K /data/app 5.5K /data/property 4.0K /data/cache 69.0K /data/anr 4.0K /data/dontpanic 12.0K /data/local 1.8M /data/system 88.5M /data/dalvik-cache 36.1M /data/data 12.5K /data/backup 8.0K /data/s... 阅2530 转4 评0 公众公开 14-02-22 13:22 |
我们知道,传统的IPC方式传递大块内存时,一般使用共享内存的方式。将某个设备(如pmem或ashmem)管理的内存映射(mmap)到系统的进程内存空间,这块内存称为内存堆(MemeoryHeap)IMemoryHeap定义了获取内存堆信息的接口,这个内存堆的信息有:HeapID(亦即设备文件描述符)、经过mmap映射到进程空间的基址、内存堆大小以及访问标志。sp<Bp... 阅2956 转1 评0 公众公开 14-02-22 13:16 |
intptr_t backtrace[BACKTRACE_SIZE];// XXX: the protocol doesn’t allow variable size for the stack trace (yet)*infoSize = (sizeof(size_t) * 2) + (sizeof(intptr_t) * BACKTRACE_SIZE);//32个指针值项,//注意: info前面是两个size_t变量,它们是HashEntry中的size和allocations两个成员,后面是backtrace*overallSize = *infoSize * g... 阅292 转0 评0 公众公开 14-02-22 12:32 |
Android 操作系统的内存回收机制Android APP 的运行环境。必须是空进程,即进程中没有任何 activity 存在。如下代码中四个阈值分别是 6MB,8MB,16MB 和 64MB,分别代表当内存小于 64MB 时,adj 大于或等于 12 的那些进程将被杀死并回收,内存小于 16MB 时,adj 大于等于 6 的那些进程将被杀死并回收,内存小于 8MB 时,adj 大于等于 1 的那些... 阅91 转1 评0 公众公开 14-02-06 22:01 |
因此要了解android的内存管理就必须得了解java的内存分配和垃圾回收机制。Method Area:被装载的class的元信息存储在Method Area中,它是线程共享的Heap(堆):一个java虚拟机实例中只存在一个堆空间,存放一些对象信息,它是线程共享的Java栈: java虚拟机直接对java栈进行两种操作,以帧为单位的压栈和出栈(非线程共享)程序计数器(非线程共... 阅34 转0 评0 公众公开 13-12-25 11:22 |