源码分析
文章平均质量分 89
喜欢辣椒的胖子
这个作者很懒,什么都没留下…
展开
-
RxJava 操作符的原理
Rxjava的操作符如just、crate是如何创建数据源的,创建数据源后使用Observable的filter、map等操作符进行转换,在转换的过程做了哪些处理,filter和map这样的操作符逻辑实现在哪里进行,他们之间有什么联系?原创 2024-02-28 17:39:53 · 788 阅读 · 0 评论 -
RxLifecycle源码解读—如何绑定生命周期
Rxjava在使用过程可能会造成内存泄漏,因此我们在开发中可能使用到Rxjava来绑定生命周期来及时释放Rxjava的流,RxFrament中的bindToLifecycle 方法如何实现和Fragment的生命周期绑定的?原创 2024-02-27 16:20:26 · 1075 阅读 · 0 评论 -
Databinding源码如何实现数据绑定更新?看这篇就够了
DataBinding的使用简化了我们的代码,降低了代码的耦合性。DataBinding通过布局的设置就实现了绑定的过程。那么它是如何实现数据的绑定的?内部做了什么操作,我们在使用BaseObservable实现可观察数据对象的时候,databinding又做了什么,本文我们从源码的角度来理解这个过程。原创 2021-06-13 22:30:54 · 960 阅读 · 0 评论 -
Content是什么?Android中的Content、Activity、Application 有什么区别?
什么是Content?Android中的Content、Activity、Application 有什么区别?Context是什么?根据个人理解Context这个“上下文”是Android 系统的一个应用信息的描述类,也是对一些基础操作的抽象类。包含了比如StartActivity、StartService、registerReceiver等操作的抽象,同时提供了一些系统的配置信息,常量信息。Context本身不做任何操作,通过阅读源码我们知道,Context它有两个直接子类一个ContextImp原创 2021-03-25 17:40:29 · 2966 阅读 · 0 评论 -
Handler到底是如何完成线程切换的?
Handler到底是如何完成线程切换的?这个问题要从Handler最初的用法和原理讲起。首先我们列出正常情况下一个Handler使用的步骤然后讲解分析如何实现,这里不对一些基础的概念做解释,具体的请查阅源码。Handler的使用步骤:1.调用Looper.prepare();2.创建Handler对象;3.调用Looper.Loop()方法。4.线程中发送消息。这样我们...原创 2019-05-09 18:01:48 · 3760 阅读 · 2 评论 -
7.0系统中FileProvider使用和源码解析
Android 7.0强制启用了被称作 StrictMode的策略,带来的影响就是你的App对外无法暴露file://类型的URI了。如果你使用Intent携带这样的URI去打开外部App(比如:打开系统相机拍照),那么会抛出FileUriExposedException异常Android7.0系统中添加了一个新的设置,采用新的方式FileProvider访问文件系统。下面结合源码对Fil...原创 2019-04-26 15:18:44 · 1477 阅读 · 0 评论 -
setSupportActionBar添加Toolbar后系统之后如何创建Menu
在正常的开发中我们会使用 setSupportActionBar(Toolbar toolbar)方法设置Toolbar,通过Toolbar我们可以添加Menu等菜单操作。那么setSupportActionBar方法到底是如何设置了ToolBar并且关联到Menu的?首先从setSupportActionBar(mToolbar)看起。首先这个方法调用到了this.getDelegate()...原创 2019-08-05 16:47:33 · 993 阅读 · 0 评论