:相信一步步走过来的Android从业者,每个人都会遇到OOM的情况。如何避免和防范OOM的出现,对于每一个程序员来说确实是一门必不可少的能力。今天我们就谈谈在Android平台下内存的管理之道,开始今天的主题之前,先再次回顾两个概念。内存泄漏:对象在内存heap堆中中分配的空间,当不再使用或没有指向的情况下,仍不能被GC正常回收的情况。多数出现在不合理的编码情况下,比如在Activity
文章目录1. 资源性对象未关闭2. 注册对象未注销3. 类的静态变量持有大数据对象4. 非静态内部类的静态实例5. Handler临时性内存泄漏6. 容器中的对象没清理造成内存泄漏7. WebView 如果在内存泄漏发生后再去找原因并修复会增加开发的成本,最好是在编写代码时就能够很好地考虑到内存问题,写出更高质量的代码,这里列出一些常见的内存泄漏场景,在以后的开发过程中需要避免这类问题。1. 资
最近的项目中,内存一直再增长,但是不知道是什么问题,导致内存溢出,在网上看到了这么一篇关于内存分析与管理的文章,解决了部分问题,感觉这篇文章还不错,就转帖到我的blog上了,希望对大家有所帮助。如果哪里有不好的地方,给留下言,然后我们大家继续完善内存泄露的问题,对大家都会有所帮助的,呵呵一、概述 1 二、Android(Java)中常见的容易引起内存泄漏的不良代码 1 (一) 查询数据库没有关
转载 2024-03-12 23:16:19
128阅读
前言:EventBus刚用不久,之前也不太懂,几经查阅也终于弄明白了,现在记录下来分享一下,用明白了之后发现其逻辑确实简单,并且耐用,现在已经习惯用EventBus了。一、EventBus简介1、EventBus是一款针对Android优化的发布/订阅事件总线2、EventBus主要功能是代替Intent、Handler、BroadCast等在Activity,Fragment,Service线程
转载 2024-07-11 12:02:24
79阅读
自从Google在2013年发布了Android Studio后,Android Studio凭借着自己良好的内存优化,酷炫的UI主题,强大的自动补全提示以及Gradle的编译支持正逐步取代Eclipse,成为主流的Android开发IDE。Android Studio在为我们提供了良好的编码体验的同时,也提供了许多对App性能分析的工具,让开发者可以更方便分析App性能。Google在IO大会上
一、EventBus机制简介EventBus支持单例模式,也支持建造者模式用于定制处理。,可以定制处理线程池,异常抛出开关,log记录开关等。主要是为了解决不同线程处理之后得到的数据的在其他线程(一般是主线程)的处理问题。使用方式 注册EventBus.getDefault().register(Object );反注册:EventBus.getDefault.unregister(Object
转载 2024-07-15 07:33:26
42阅读
一、介绍EventBus是一款针对Android优化的发布/订阅事件总线,他的主要功能的代替Intent,Handler,BroadCast在Service,Activity,Fragment中进行通信传递消息,他的优点是开销小,代码优雅简洁,易上手。1、EventBus的开源库源码:https://github.com/greenrobot/EventBus2、基本使用方法(1)自定义一个消息内
转载 2023-06-26 14:15:57
159阅读
 项目地址 :https://github.com/greenrobot/EventBus这个项目个人感觉就是为了解决回调事件过多的,比方说A函数在做完以后 要调用b类的c函数,那我们通常的做法就是 定义一个接口 然后再A函数所属的类里面注册这个接口。然后a函数做完以后 直接调用这个接口即可。但是这种方法写多了以后确实很麻烦,于是EventBus就是用来解决这种场景的。和以往一样,我们只
转载 2023-07-24 16:07:25
81阅读
# Android EventBus 事件总线 ## 简介 Android EventBus 是一个开源的发布/订阅事件总线库,用于简化 Android 应用程序内的组件之间的通信。通过使用 EventBusAndroid 应用程序可以实现松耦合的通信方式,使组件间的交互更加灵活和可维护。 EventBus 使用了观察者模式,通过在事件发生时发送事件消息,然后订阅者可以接收并响应这些消息。
原创 2023-08-16 06:12:40
68阅读
# EventBusAndroid事件总线 ## 引言 在Android应用程序的开发中,我们经常会遇到多个组件之间需要进行通信的情况,如Activity与Fragment之间的通信、Fragment与Fragment之间的通信、Service与Activity之间的通信等等。传统的方式是通过接口回调、广播、发送消息等方式来实现组件间的通信。然而,这些方式都存在一些问题,如代码冗余、复杂性高
原创 2023-08-14 11:44:59
64阅读
EventBus 是在Android 中数据总线的框架,他基于观察者模式。他的优点是体积小,使用简单,效率高,支持不同的线程 如果你的项目中,经常需要在各个对象中传递数据,那么EventBus 将会是你不错的选择。 Git地址:https://github.com/greenrobot/EventBus为什么我们要使用EventBus?1、本身整个框架设计就是为了解决Android 广播那类型复杂
转载 2024-02-24 22:38:14
73阅读
使用EvnetBus可以实现Android各大组件之间的通信(跨进程呢
原创 2022-11-08 12:36:23
138阅读
一. 最近在学习的过程中,学习到了一个比较好用的android的开源框架--EventBus。经过几次的百度借鉴与实践了解之后,整理如下,供以后的学习查阅。 二.关于EventBus的定义:                &nbs
转载 2023-09-21 12:34:01
105阅读
1.前言EventBus是一款针对Android优化的发布/订阅事件总线。可以替代广播、startActivityForResult、Handler、异步回调等来实现各组件间、组件与后台线程间的通信。它的优点是开销小,代码更优雅,以及将发送者和接收者解耦。通常我们在使用EventBus的时候都是直接需要接收通信的Activity/Fragment中通过EventBus.getDefault().r
转载 2018-12-20 15:04:00
133阅读
前言:EventBus刚用不久,之前也不太懂,几经查阅也终于弄明白了,现在记录下来分享一下,用明白了之后发现其逻辑确实简单,并且耐用,现在已经习惯用EventBus了。一、EventBus简介1、EventBus是一款针对Android优化的发布/订阅事件总线2、EventBus主要功能是代替Intent、Handler、BroadCast等在Activity,Fragment,Service线程
前一篇文章简单介绍了EventBus 3.0的用法,现在是时候详解其用法了。首先声明,EventBus 3.0的改动针对2.4的改动并不是特别大,但是对于其性能的提升是另外一个说法了,所以建议学习EventBus 3.0。 注解 新增的@Subscribe threadMode = ThreadMode.MainThread用注解的方式代替约定的方法名规范,是其最大的改变。在2.4中,你可能需要这
EventBus优缺点: 优点:简化组件之间的通信方式,实现解耦让业务代码更加简洁,可以动态设置事件处理线程以及优先级 缺点:目前发现唯一的缺点就是类似之前策略模式一样的诟病,每个事件都必须自定义一个事件类,造成事件类太多,无形中加大了维护成本概述: EventBus是一款针对Android优化的发布/订阅(publish/subscribe)事件总线。主要功能是替代Intent,Handle
转载 2023-11-21 23:54:55
270阅读
    上一篇研究了EventBus的使用方法,但随之而来的一系列问题也是值得思考,EventBus到底给项目带来了什么?它与Android原有的消息处理机制有什么区别和优缺点?项目在什么场景下采用EventBus会比较合适?因此,本篇就通过EventBus、BroadCast和Handler(Message)三者的比较解释这三个问题。1、BroadCast    广播是相对消耗时间、空间最多的一
前言EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间、组件与后台线程间的通信。比如请求网络,等网络返回时通过Handler或Broadcast通知UI,两个Fragment之间需要通过Listener通信,这些需求都可以通过EventBus实现。我们今天就来学习一下它。1.EventBus概述EventBus原理图EventBus的四
EventBus是一款在Android开发中使用的发布/订阅事件总线框架。基于单例+观察者模式,将事件的接收者和发送者分开,简化了组件之间的通信。其原理图如下: 此框架的使用方式,我们在  里面已经讲过了,这里不多赘述了,下面我们讲一下其原理。一、EventBus 注册订阅方法注册订阅需要调用:EventBus.getDefault().register(this);这里的ge
  • 1
  • 2
  • 3
  • 4
  • 5