当前位置: 首页 > news >正文

sublime怎么做网站谷歌商店app下载

sublime怎么做网站,谷歌商店app下载,为什么用dw做的网站打不开,c2c模式的典型网站内存泄漏是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费称为内存泄漏。 平时我们在使用app时,少量的内存泄漏我们是发现不了的,但是当内存泄漏达到一定数量时&…

内存泄漏是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费称为内存泄漏。

平时我们在使用app时,少量的内存泄漏我们是发现不了的,但是当内存泄漏达到一定数量时,可能会引起OOM(Out of memory)

我们可以借助工具LeakCanary来检测内测泄漏

首先在项目build.gradle中引入LeakCanary库

  //https://github.com/square/leakcanary 内存泄漏分析工具(debugImplementation 来配置依赖,只在开发环境中依赖)debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.12'

当有内存泄漏时,会在通知栏中有通知,所以我们可以使用debugImplementation 来配置依赖,只在开发环境中依赖,这样正式包里不会引用LeakCanary库。

使用LeakCanary 2.0以上版本,无需做任何配置,引入库后就会自动检测内存泄漏

单例模式导致的内存泄漏

创建一个单例

public class Singleton {private static Singleton sInstance;private Context mContext;private Singleton(Context context) {this.mContext = context;}public static Singleton getInstance(Context context) {if (sInstance == null) {sInstance = new Singleton(context);}return sInstance;}public void test(){mContext.getContentResolver();}
}

在Activity中执行

public class TestLeakActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_test_leak);Singleton.getInstance(this).test();}
}

执行完单例之后看一下leakcanary

LeakCanary: 1 APPLICATION LEAKS
LeakCanary: ┬───
LeakCanary: │ GC Root: Local variable in native code
LeakCanary: │ ...            
LeakCanary: ├─ com.example.myapplication.Singleton instance
LeakCanary: │    Leaking: UNKNOWN
LeakCanary: │    Retaining 112915 bytes in 1674 objects
LeakCanary: │    mContext instance of com.example.myapplication.TestLeakActivity with mDestroyed = true
LeakCanary: │    ↓ Singleton.mContext
LeakCanary: │                ~~~~~~~~
LeakCanary: ╰→ com.example.myapplication.TestLeakActivity instance
LeakCanary: ​     Leaking: YES (ObjectWatcher was watching this because com.example.myapplication.TestLeakActivity received
LeakCanary: ​     Activity#onDestroy() callback and Activity#mDestroyed is true)
LeakCanary: ​     Retaining 112903 bytes in 1673 objects
LeakCanary: ​     key = 297d72a4-5e9d-41bf-baba-6856105c73f0
LeakCanary: ​     watchDurationMillis = 5176
LeakCanary: ​     retainedDurationMillis = 139
LeakCanary: ​     mApplication instance of com.example.myapplication.MyApplication
LeakCanary: ​     mBase instance of android.app.ContextImpl, not wrapping known Android context
LeakCanary: ====================================
LeakCanary: 0 LIBRARY LEAKS

发现UNKNOW 出现地方为Singleton中的mContext,说明当前的mContext可能没有释放掉,但是后续又看到YES说明当前确实没有释放掉

解决方案
将context变成ApplicationContext,当应用关掉之后,会自动回收ApplicationContext

 private Singleton(Context context) {this.mContext = context.getApplicationContext();}
http://www.tj-hxxt.cn/news/107969.html

相关文章:

  • 网站群建设招标aso优化推广公司
  • 昆明网站设计南昌seo技术外包
  • 茶业网站设计方案对搜索引擎优化的认识
  • 深圳高端网站建设报价网络营销策划内容
  • 内部网站建设公司企业网站设计模板
  • 网站改标题降权广告公司推广平台
  • 做网站需要准备哪些东西seo基本概念
  • wordpress主题市场宁波优化推广选哪家
  • 济南城市建设集团 网站韩国比分预测
  • 长春哪家网站做的好2021近期时事新闻热点事件
  • 做赌博黑网站赚钱么么免费关键词排名优化
  • 教做布艺的网站在线crm系统
  • 一键优化清理手机武汉seo优
  • 什么网站是html5做的网站建设的推广渠道
  • 广告设计毕业设计如何提高网站排名seo
  • 网站建设规划设计公司排名软文大全500篇
  • 汾阳做网站网站关键词优化建议
  • 南宁良庆网站建设发广告平台有哪些
  • java开发教程汕头seo外包机构
  • 腾讯云服务器用什么软件做网站百度如何投放广告
  • 设计素材网站排行新闻类软文营销案例
  • 企业如何应用网站的淘宝产品关键词排名查询
  • 网页制作与设计调试分析1688关键词怎么优化
  • beego框架做的网站制作网页多少钱
  • 专业点的网站制作公司网络营销工具有哪些?
  • wordpress整合phpwind.网站seo推广优化教程
  • 找人做网站如何担保上海seo服务
  • 做网站的是如何赚钱的网店营销策划方案ppt
  • 网站后台开发教程足球排行榜前十名
  • 黄村专业网站开发公司成crm软件