IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android 内存泄露 -> 正文阅读

[移动开发]Android 内存泄露

1.定义

Android (或 JVM)的内存泄露:短?命周期的对象被??命周期的对象持有,从?导致短?命周期的对象不能被释放

2.垃圾回收机制

垃圾回收机制分为「引?计数法」和「可达性分析法」:

  • 「引?计数法」 Python , Object-C , Swift
    ??个计数器记录?个对象被引?的次数,如果引?的次数被减少到 0 那么说
    明这个对象是垃圾 对象。
    都是引?计数(引?计数有循环引?的问题)
  • 「可达性分析法」 Java
    Jvm 通过?些 GC Roots 向下搜索,如果可以被 Gc Roots 引?到的对象,说明
    这个对象不是垃圾对象,反之这个对象就算互相引?了也是垃圾对象。
    哪些对象会被作为 GC Roots 呢?
    1. 在线程栈中的局部变量,也就是正在被调?的?法,它??的参数和局部变
    2. 存活的线程对象
    3. JNI 的引?
    4. Class 对象,因为 Android 加载 Class 后不会卸载 Class
    5. 引?类型的静态变量

3.内存泄露导致的问题

内存泄漏并不会?上把程序搞挂掉。但是随着应?的使?,不能回收的垃圾对象会越来越多,就导致了 可?的内存越来越少,到最后应?就有可能在任何位置抛出OutOfMemoryError ,这种情况下,每次 OOM 错误堆栈都不同,就很难定位问题。

4.四?引?

  • 强?点的引?
    强引?——不会被垃圾回收
  • 弱?点的引?
    弱引?——可以通过 get() 获得引?对象,会被垃圾回收
    软引?——可以通过 get() 获得引?对象,内存不?会被垃圾回收
    虚引?——不能通过 get() 获得引?对象,会被垃圾回收

5.实现检测内存泄漏思路

将对象添加到弱引用中,当弱引?在引?对象被垃圾回收之前,会将引?放?它关联的队列中。
可以通过队列中是否有对应的引?来判断对象是否被垃圾回收了。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-02-16 13:14:01  更:2022-02-16 13:16:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:41:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码