Class RefBase 实现了类似于智能指针的工作,sp及wp。从而实现了垃圾自动回收的机制。
详细代码可以在/frameworks/base/include/utils/RefBase.h中看到。
sp并不是所常见的smart pointer,而是strong pointer。
构造函数:
析构函数:
incStrong()会在构造或复制后,增加强引用1次。而每次delete一个sp对象时,sp对象的强引用就会减少1次。
当对象的强引用次数为0的时候这个对象就会被自动释放掉。
而wp即weak pointer。
构造函数:
析构函数:
createWeak()及decWeak()类似于incStrong()及decStrong(),进行弱应用的计数。
同时,wp还提供了向sp进行转换的方法。
对应的,sp中增加了对应该转换的构造函数: