Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com RxJava RxLifecycle 生命周期 内存泄漏 MD Demo地址 GitHub 目录 目录简介添加依赖产生背景注意使用方式 compose案例 简介 另一个功能与此库类似.核心设计借鉴此库.此库作者也参与设计.此库作者认为比此库好.但是星星比较少.国内不流行.上手比较难的库:h…
01 课程回顾 1.指针数组 注意: 对于数组来说,在使用sizeof的时候a和&a[0]是不一样的, 虽然以%x打印出来他们都是地址 2.值传递 int a; fun(a); int *****p; fun(p); // 这个也是值传递,把p的值传过去了 所以是值传递,并没有取地址 3.栈区和字符常量区 a[i] 等价于 *(a+i) 4.局部变量的问题: 5.strcpy虽然第一个参数是指针,但是内部实现是像指针所指向的内存拷贝内容: 6.char *p1 = “hello mike”; 记…
一使用步骤 添加依赖 // 内存泄漏检测 debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.4' releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4' 在application中注册.后面有代码 运行项目后会出现图标如下,如果有泄漏会以列表的形式进行展现; 二注意事项 由于我们这个项目是有多个moudle,一开始是LeakCanary是…
前言: 其实RxJava引起的内存泄漏是我无意中发现了,本来是想了解Retrofit与RxJava相结合中是如何通过适配器模式解决的,结果却发现了RxJava是会引起内存泄漏的,所有想着查找一下资料学习一下如何解决RxJava引起的内存泄漏,就查到了利用Rxlifecycle开源框架可以解决,今天周末就来学习一下如何使用Rxlifecycle. 引用泄漏的背景: RxJava作为一种响应式编程框架,是目前编程界网红,可谓是家喻户晓,其简洁的编码风格.易用易读的链式方法调用.强大的异步支持等使得R…
使用过Rxjava的小伙伴都知道,在使用RxJava时如果处理不当,很可能会产生内存泄漏的问题. 我们使用rxjava最大的原因是响应式编程使我们的异步操作代码变得很优雅,在Android中,也使线程切换变得很简单,而产生内存泄漏的大部分原因都是在异步执行耗时操作时,我们关闭了Activity,但是由于rxjava仍然持有Activity的引用,导致Activity无法被内存回收.这样就造成了内存泄漏问题. 我们先举个例子来看看内存泄漏产生的过程及结果 内存泄漏小例子 布局很简单,就是一个按钮和…
rxjava rxandroid 赵彦军 前言:对Rxjava.Rxandroid不了解的同学可以先看看 RxJava 和 RxAndroid RxJava 和 RxAndroid 二(操作符的使用) RxJava使我们很方便的使用链式编程,代码看起来既简洁又优雅.但是RxJava使用起来也是有副作用的,使用越来越多的订阅,内存开销也会变得很大,稍不留神就会出现内存溢出的情况,这篇文章就是介绍Rxjava使用过程中应该注意的事项. 1.取消订阅 subscription.unsubscribe(…
RxJava使我们很方便的使用链式编程,代码看起来既简洁又优雅.但是RxJava使用起来也是有副作用的,使用越来越多的订阅,内存开销也会变得很大,稍不留神就会出现内存溢出的情况,这篇文章就是介绍Rxjava使用过程中应该注意的事项. 1.取消订阅 subscription.unsubscribe() ; package lib.com.myapplication; import android.os.Bundle; import android.support.v7.app.AppCompatA…
如果你是一个IOC新手,那么生命周期可能会比较难以理解.以至于谈到这个问题时,一些老手也时常表示疑虑和害怕.一个令人不安的问题就是-对象没有在合适的时机被销毁.这样一来内存的使用率就会一直攀升,直到程序抛出OutOfMemoryException异常.(如果不熟悉生命周期这样的问题可能一直咬着我们不放) 如何避免在使用IOC容器时的生命周期问题,其实也不是特别复杂.并不仅仅是IOC容器的API使用方面,更多的是因为你的应用程序设计问题.以下将有一些好的建议,个人感觉很少有人从头到尾讲解这个问题,…
1 JVM内存 分为“堆”.“栈”和“方法区”三个区域,分别用于存储不同的数据 1.1 堆 JVM在其内存空间开辟一个称为”堆”的存储空间,这部分空间用于存储使用new关键字所创建的对象. 1.2 栈 JVM在其内存空间开辟一个称为”栈”的存储空间,这部分空间用于存储程序运行时在方法中声明的所有局部变量. 1.3 方法区 方法区用于存放类的信息,Java程序运行时,首先会通过类装载器载入类文件的字节码信息,经过解析后将其装入方法区,类的各种信息(包括方法)都在方法区存储. 2 对象的生命周期 2…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com LeakCanary 内存泄漏 监测 性能优化 简介 原理 MD GitHub:https://github.com/square/leakcanary Demo地址:https://github.com/baiqiantao/LeakCanaryTest.git 目录 目录介绍简单使用更…