我们这边自己再重新梳理,总结下。这3种指针都是基于计数器的原理完成的。一、轻量级指针我们先来看第一个,LightRefBase类的实现在system/core/include/utils/Refbase.h中实现的template <class T>
class LightRefBase
{
public:
inline LightRefBase() : mCoun
转载
2023-12-07 21:19:16
143阅读
上节通过一个死锁的问题,引入了强弱指针的概念。本节来讨论Android强弱指针的实现与使用。轻量级智能指针先来回顾一下轻量级智能指针。首先定义了一个 LightRefBase类,它有一个私有成员 mCount,即所谓的引用计数。然后定义了一个Person类,Person类继承了LightRefBase类,这样Person类就同样有引用计数了。可以通过 sp<Person> 来使用Per
转载
2023-12-25 11:32:09
69阅读
1.如何才能支持sp,wp 只支持sp的情况,只要实现下面2个函数就行 class simpleRefbase{
void incStrong(const void* id);
void decStrong(const void* id);
};这就是我们常规实现的简单引用计数方法。
android已经帮我们实现了一个LightRefBase<T
转载
2023-12-26 21:13:50
46阅读
这3种指针,在这篇博客中讲的比较详细。我们这边自己再重新梳理,总结下。这3种指针都是基于计数器的原理完成的。一、轻量级指针我们先来看第一个,LightRefBase类的实现在system/core/include/utils/Refbase.h中实现的
1. template <class
2. class
3. {
4. public:
5. inline
转载
2024-01-23 23:23:06
130阅读
3. 强指针
强指针所使用的引用计数类为RefBase,它LightRefBase类要复杂多了,所以才称后者为轻量级的引用计数基类吧。我们先来看看RefBase类的实现,它定义在frameworks/base/include/utils/RefBase.h文件中:
class RefBase &n
原创
2011-09-23 00:59:02
1456阅读
简介 RefBase是Android中所有对象的始祖,类似MFC中的CObject及Java中的Object对象。在Android中,RefBase结合sp和wp,实现了一套通过引用计数的方法来控制对象生命周期的机制。RefBase的子类在构造一个实际对象的同时,还会悄悄地构造一个影子对象. sp是strong pointer, wp是weak pointer, LightRefBase是
转载
2023-07-12 21:39:08
51阅读
文章目录1、RefBase简介2、RefBase源码分析3、RefBase使用注意事项4、总结 1、RefBase简介什么是RefBase?RefBase是Android中的一个C++类,用于内存管理,相关的类还包括LightRefBase、sp和wp。在Android源码中的许多地方都可以看到RefBase的使用,那么,为什么RefBase这么受欢迎呢?这源于C++的指针与动态内存管理,指针本
转载
2024-01-12 01:52:49
78阅读
在浅谈Android引用计数(1)中讲了LightRefBase实现对象计数管理的原理,这篇文章将要分析重量级的引用基类:RefBase的实现和它的作用。
下面是RefBase和相关类的类图:
图中可以看出,RefBase类有一个成员变量 mRefs,它指向一个weakref_impl对象。这个对象管理这RefBase的生命周期,其中weakref_impl类中有两个引用计数:一个表示强引
推荐
原创
2013-04-10 20:52:32
1231阅读
1评论
代码来源:android4.2.2源码智能指针参考原型:<c++ primer>13章 复制控制->13.5 用引用计数法来定义智能指针。android智能指针类文件:RefBase.h,StrongPointer.h定义了两个计数类和两种智能指针。两种计数类分别是轻量级计数(LightRefBase)和强弱引用计数类RefBase。两种智能指针分别是强指针模版类(sp)和弱指针
转载
2023-12-27 16:01:36
70阅读
文章目录深入理解常见类第一部分 RefBase、sp和wp1. 初识影子对象1.1 RefBase和它的影子1.2 sp上场1.3 sp析构的影响1.4 总结2. 由弱生强2. 1 总结3. 破解生死魔咒3.1 延长生命的魔咒3.2 LIFETIME_WEAK的魔力3.3 LIFETIME_FOREVER4. 轻量级的引用计数控制类LightRefBase第二部分 Thread类及常用同步类分析
转载
2024-04-03 15:13:49
35阅读