目的:确保一个类别只会产生一个物件 废话不多说马上来看Singleton怎幺实作 这个写法在Android Memory Leak及衍伸问题01有提到 我打算把每个问题都拆开来讨论并且个别讨论解决方案...
目地:保证一个类型总是造成一个物品
废话不多说立刻看来Singleton怎幺实操
这一书写在Android Memory Leak及衍伸难题01有提及
我准备把每一个难题都拆出来探讨而且某些探讨解决方法
防止在一篇文章中提及好几个难题而造成阅读者搞混解决方法
实操完后立刻就来运用一下较为一下差别
一般情况
最先在一般沒有应用Singleton的状况,大家一切一个地区应用到物品都务必new一个新的
在这个範例中大家在一个Activity通话了三个API,在沒有Singleton的情况下,就造成了三个不一样的物品
应用Singleton
接下去大家导进Singleton Pattern在一样的情景下应用,全部地区全是应用同一个物品。在这个範例中大家物品佔用的內存室内空间便是本来的三分之一了
一开始提到的目地(保证一个类型总是造成一个物品),将会会有一个疑惑,只造成一个这件事情有这幺关键吗?
自己觉得,平时不大经营规模的开发设计或是內存很充裕的状况,也许你做不做都觉得不上差别,就如大家不久举的一个事例经营规模不大,复位一次压根佔用不上是多少時间,自然做不做从一般的应用或是检测下,是没有办法发觉的
举的事例讨论一下
大家假定这一物品在复位的情况下必须很高的成本费
这里我还在复位的情况下姿势再加必须载入一张3MB的图片资源档
一般情况
能够见到在2次复位中间能用內存立即少3%了
对于我是怎幺Log內存的能够去爬爬文,我是看这个StackOverFlow
应用Singleton
在这里2次复位中间內存基本上沒有变化,关键缘故便是用Singleton Pattern后,sInstance物品仍在,因此压根不用再再次new一个新物品,自然就不容易有多的內存被佔用
看了这篇实际上也是一个依据,从平时就刚开始培养优良的编写习惯性,防止Project越养越肥,那时候重新构建、提升效率保证抱头痛哭