- 6
- 0
- 约 7页
- 2016-11-30 发布于安徽
- 举报
AndroidC++回收机制.doc
Android C++回收机制
1关于C++ Layer的内存回收机制
Android C++层的内存收回主要是通过三个类来实现,分别是RefBase,sp,wp;
SP和WP是两个智能指针模板类,sp是strong pointer,wp则是weak pointer,亦我们常说的强引用和弱引用;实例化sp和wp这两个模板类的类型必须是派生自RefBase的类1.1 RefBase类
因为这个类拥有对内存回收机制的默认实现,所以android上想要支持内存回收机制的类必须派生自RefBase
下面简单介绍下成员变量和成员函数:
mRefs:
weakref_impl对象,派生于RefBase::weakref_type, 包含了对strong ref和weak ref的具体实现,也就是说RefBase中只包含了一些对外的标准操作,具体的实现在weakref_impl内
void incStrong(const void *id):
强引用计数加1,参数id主要用在debug时跟踪调试,一般都为sp或者wp的对象指针
void decStrong(const void *id):
强引用计数减1,参数id含义同上
void forceIncStrong(const void *id):
强制引用计数加1
Int32_t getStrongCount():
获去强引用计数值
weakr
原创力文档

文档评论(0)