Android知识
文章平均质量分 70
sgy645148995
这个作者很懒,什么都没留下…
展开
-
几种图片加密方式及其原理
几种图片加密方式原创 2024-03-08 15:58:37 · 3829 阅读 · 1 评论 -
java中常用集合的简单介绍
【代码】java中常用集合的简单介绍。原创 2023-04-05 13:58:41 · 100 阅读 · 0 评论 -
一文简单说明LiveData实现原理
LiveData 是 Android Jetpack 架构组件之一,它是一个可观察的数据持有者类,允许组件(如 Activity、Fragment)观察数据变化并自动更新 UI。在实际应用中,组件(如 Activity、Fragment)需要实现 Observer 接口并重写 onChanged 方法,以便在数据发生变化时执行自定义操作(如更新 UI)。setValue 方法用于设置 LiveData 的值。在这个方法中,我们检查是否有关联的观察者,并调用其 onChanged 方法,通知数据变化。原创 2023-04-04 15:16:09 · 93 阅读 · 0 评论 -
一文简单说明EventBus实现原理
在这个简化版的 EventBus 中,我们使用了一个 HashMap(subscribers)来保存每个事件类型的订阅者列表。在订阅者注册时,我们会检查订阅者是否有一个名为 onEvent 的方法,该方法接受当前事件类型作为参数。如果有这样的方法,订阅者将被添加到相应的订阅者列表中。在发布事件时,我们会找到相应的订阅者列表,并使用反射调用它们的 onEvent 方法,将事件对象传递给它们。需要注意的是,这个简化版的 EventBus 实现没有考虑线程模型、订阅者方法的注解和订阅者方法的缓存等细节。原创 2023-04-04 14:34:13 · 77 阅读 · 0 评论 -
Android开源框架:Retrofit详解
ServiceMethod就像是一个中央处理器,传入Retrofit对象和Method对象,调用各个接口和解析器,最终生成一个Request,包含api 的域名、path、http请求方法、请求头、是否有body、是否是multipart等等。Retrofit的源码十分优秀,用注解的形式组合HTTP请求,通过代理接口,处理请求的逻辑,最后再执行请求。熟悉设计模式的都知道,代理模式的思想是通过一个“代理商”,让”用户“通过它处理难以处理的”事情“。它请求实现的核心在于“注解”、“动态代理”、“反射”。转载 2023-03-06 18:00:33 · 417 阅读 · 0 评论 -
Activity创建流程
它不是一个线程,它是运行在 App 进程中的主线程中的一个方法中。最终通过 WindowManagerImpl.addView -> WindowManagerGlobal.addView -> ViewRootImpl.setView -> ViewRootImpl.requestLayout 就触发了第一次 View 的布局、测量、绘制的流程。phonewindow是作为view与activity之间的一个管理工具,创建是在activity的attach方法中,作为window的一个实现类。原创 2023-02-26 16:25:26 · 476 阅读 · 1 评论 -
okhttp原理详解
一、okhttp工作的大致流程当我们通过OkhttpClient创建一个Call,并发起同步或异步请求时;okhttp会通过Dispatcher对我们所有的RealCall(Call的具体实现类)进行统一管理,并通过execute()及enqueue()方法对同步或异步请求进行处理;execute()及enqueue()这两个方法会最终调用RealCall中的getResponseWithInterc原创 2023-02-25 11:57:04 · 208 阅读 · 0 评论 -
MeasureSpec 三种模式
1.EXACTLY:精确模式,对应我们在布局文件中设置宽高时给一个具体值或者match_parent;当前的尺寸就是当前View应该取的尺寸.对应关系:match_parent—>EXACTLY。match_parent就是要利用父View给我们提供的所有剩余空间,而父View剩余空间是确定的,也就是这个测量模式的整数里面存放的尺寸。固定尺寸(100dp)—>EXACTLY.用户自己制定了尺寸大小,我们就不用再去干涉了,当然是以指定的大小为主。父容器已经为子容器设置了尺寸,子容器应当服原创 2022-04-14 17:10:31 · 498 阅读 · 0 评论