项目实战
文章平均质量分 85
bugyinyin
这个作者很懒,什么都没留下…
展开
-
Android系统服务 AMS 启动流程
AMS为 system 创建环境:创建 AMS 对象,注册一系列的服务,如:管理四大组件、内存、CPU使用监控等为 system 进程创建,加入到AMS的进程管理中启动,拉起launch进程。原创 2022-08-25 11:06:16 · 1457 阅读 · 0 评论 -
Android 网络浅析
所谓协议,就是一种“规范”、或者说“约定”,在通俗点就是“某种规则”。 平时编程用到语言:java、c++、js等也属于协议。 协议一般包含三个要素:* 语法 按照某种规则。如谍战片中的加密电报* 语义 根据这种规则,需要表达的意思* 顺序 形成某种顺序,包含上下文信息 如 先干什么,然后在干什么等等............原创 2022-08-18 10:37:21 · 813 阅读 · 0 评论 -
Jetpack系列-Lifecycle使用和源码分析
1 简介和简单使用1.1 简介Lifecycle是Jetpack中一个生命周期感知型组件,可执行操作来响应另一个组件(如 Activity 和 Fragment)的生命周期状态的变化。该组件通过感知Activity 和 Fragment的生命周期事件,在内部维护一个状态,该状态又可以转换成生命周期事件。主要作用就是进行系统组件的生命周期和普通组件的解耦,可以使得在正确的生命周期下做正确的操作,即使释放资源,减少内存泄漏。有助于写出更有条理且更精简的代码。1.2 简单使用按需引入依赖。depen原创 2022-05-13 16:46:13 · 116 阅读 · 0 评论 -
EventBus 源码分析 - 注解 + 反射
EventBus 源码解析随着 LiveData 和 Kotlin Flow 的出现,EventBus 已经慢慢过时了。不过 EventBus 源码的设计思想以及实现原理还是值得我们去学习的。getDefault() 方法EventBus().getDefault().register(this)首先 EventBus 的创建用到了 DCL 单例模式,源码如下:public class EventBus { static volatile EventBus defaultIns原创 2022-05-11 21:55:10 · 334 阅读 · 0 评论 -
代理模式实现隔离层架构,自由切换三方网络请求框架
使用代理模式实现隔离层架构,目的是为了当出现一个新的网络框架的时候,可以在业务层无感的情况下自由切换网络库,实现热插拔,对业务层几乎没有影响。1 架构图以用户租房为例,租户相当于APP的业务层;一个用户会对比多套房子,所以会有多个房东,最终提供房源的是房东,所以房东就类似最终实现网络请求的网络库。中介公司和中介属于隔离层,用户租房不直接和房东打交道,只和中介联系,至于中介和哪个房东沟通,用户无需关心,只要租到房子就行,所以中介就相当于一个中间代理。2 类图3 类图和架构图以及代码中的类相结合原创 2022-05-09 20:30:42 · 182 阅读 · 0 评论