![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
死磕Android系列
文章平均质量分 95
死磕Android,深入研究原理,做到知其所以然
潇风寒月
热爱Android开发,我的github地址:https://github.com/xfhy
展开
-
死磕Android_RxJava3原理解析
文章首发于我建立的一个笔记仓库1. 背景RxJava是一个基于事件流、实现异步操作的库。官方介绍: RxJava:a library for composing asynchronous and event-based programs using observable sequences for the Java VM(RxJava 是一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)文中用到的RxJava源码版本为3.0.13,文中的demo源码 https:/.原创 2021-07-29 08:31:55 · 581 阅读 · 0 评论 -
Choreographer原理及应用
Choreographer对于一些同学来说可能比较陌生,但是,它其实出场率是极高的。View的三大流程就是靠着Choreographer来实现的,翻译过来这个单词的意思是“编舞者”。下面我们来详细介绍,它的具体作用是什么。demo地址1. 前置知识在讲Choreographer之前,必须得提一些前置知识来辅助学习。刷新率刷新率代表屏幕在一秒内刷新屏幕的次数,这个值用赫兹来表示,取决于硬件的固定参数。这个值一般是60Hz,即每16.66ms刷新一次屏幕。帧速率帧速率代表了GPU在一秒内绘制操原创 2021-04-05 08:09:22 · 1697 阅读 · 0 评论 -
Android进程间通信 Messenger详解
1. 概念Messenger,即进程间通信的信使.它是基于Message的进程间通信,我们可以像在线程间利用Handler.send(Message)一样.Messenger是一种轻量级的IPC方案,它的底层实现其实就是AIDL.跨进程通信使用Messenger时,Messenger会将所有服务调用加入队列,然后服务端那边一次处理一个调用,不会存在同时调用的情况.而AIDL则可能是多个调用同时执行,必须处理多线程问题.对于大多数应用,跨进程通信无需一对多,也就是无需执行多线程处理,此时使用Messen原创 2021-01-10 15:40:15 · 940 阅读 · 0 评论 -
死磕Android_Glide主流程观赏
文章目录1. 前言2. 阅读前准备3. with()4. load()5. into()6. 总结1. 前言首先,LPL赛区S9再度夺冠,让我们恭喜FPX凤凰涅槃!好长好长一段时间没有写博客了,中间经历了很多很多事. 比较庆幸的是找到了一份满意的工作.现在工作空闲之余,又可以写写博客归纳总结了.图片加载可能是现在所有APP都必备的,当然有很多选择,可以自己写一个库用来展示网络图片.也可以用...原创 2019-11-20 23:10:45 · 794 阅读 · 0 评论 -
死磕Android_Retrofit 原理解析
文章目录1. 基本使用2. 构建Retrofit3. 获取网络请求参数3.1 构建interface实例3.2 ServiceMethod 获取入参4. 请求网络5. 总结Retrofit,一个远近闻名的网络框架,它是由Square公司开源的.Square公司,是我们的老熟人了,很多框架都是他开源的,比如OkHttp,picasso,leakcanary等等.他们公司的很多开源库,几乎已经成为现...原创 2019-07-27 00:09:37 · 860 阅读 · 0 评论 -
死磕Android_OkHttp3 原理探究
1. 前言Okhttp3 俨然已成为Android的主流网络请求开源框架,它的设计非常巧妙,而且非常灵活,功能强大.它有如下默认特性:支持HTTP/2,允许所有同一个主机地址的请求共享同一个Socket连接连接池减少请求延时透明的GZIP压缩减少响应数据的大小缓存响应内容,避免一些完全重复的请求现在的Android项目基本上都是以OkHttp来进行高效的网络请求.当然,在使用的同时...原创 2019-07-22 22:42:52 · 1745 阅读 · 0 评论 -
死磕Android_ContentProvider 启动
先给出一个需要注意的点:ContentProvider的onCreate方法比Application的onCreate方法先执行. 下面会给出为什么.ContentProvider相对于其他组件来说,用得稍微少一些.很少有APP需要向其他应用提供数据,保护自己的数据都来不及呢.当然,除了一些大厂的APP,还有就是手机自带的一些应用(通讯录,短信,相册等等).ContentProvider可以向其...原创 2019-06-20 22:27:52 · 804 阅读 · 0 评论 -
死磕Android_BroadcastReceiver 工作过程
建议阅读本文之前先阅读死磕Android_Service启动流程分析(一),因为有些内容是一致的,方便融合.早期的时候,广播的特性被各种流氓APP利用.好多好多流氓APP监听比如打电话,收发短信,有些流氓APP甚至直接拦截短信,当然那个年代早已是过去式了,应该是4.4以前吧,反正以前那会儿挺乱的.现在好多了,想要读取短信内容,难上加难,更不能拦截短信.除非是将APP设置成了默认应用,可以收到短信...原创 2019-06-19 23:06:01 · 372 阅读 · 0 评论 -
死磕Android_Service绑定流程分析(二)
通过startService只能是把Service给启动起来,但是我们无法与其建立联系.通过bindService方式启动Service的话,不仅能启动Service,还能与其建立连接,相互调用比较方便.今天我们来理一理bindService其中的原理.建议先看一下如下两篇文章,我按照顺序来写的,循序渐进.可能有些东西前面已经介绍了,后面就不再赘述,感谢理解.死磕Android_App 启动...原创 2019-06-15 23:16:14 · 405 阅读 · 0 评论 -
死磕Android_Service启动流程分析(一)
我这里将启动Service流程分为两章来写,startService和bindService分别分析.这篇文章是分析startService过程的源码分析过程.其实startService和Activity的启动很类似,好多地方都差不多.如果之前还没有看过或者不太理解Activity的启动的同学可以看下我的这篇文章: 死磕Android_App 启动过程(含 Activity 启动过程).因为本...原创 2019-06-13 23:28:23 · 444 阅读 · 0 评论 -
死磕Android_AOSP编译过程
一直有个小心愿,想要了解以及调试Android源码。为了实现这个目标,我经历了种种坎坷,花了一个多周才搞定了。最近家里的电脑一直没怎么关机,一直在给我跑AOSP。公司最近在天天加班,所以一天只有一次试错的机会,出错了只能晚上回来继续解决问题。源码实在是太大了,我这个Android P的代码刚下载下来的时候差不多有60G左右吧。 我说真的,自己成功编译一遍AOSP,真的太舒服了。1. 准备工作...原创 2019-06-12 23:00:59 · 1481 阅读 · 1 评论 -
死磕Android_App 启动过程(含 Activity 启动过程)
文章目录1. 前言1.1 简单介绍一下主要的类2. 应用的启动过程2.1 Launcher简介2.2 启动应用源码分析3. 启动Activity3.1 启动进程3.2 启动主线程3.3 创建Application3.4 创建Activity参考1. 前言Activity是日常开发中最常用的组件,系统给我们做了很多很多的封装,让我们平时用起来特别简单,很顺畅.但是你有没有想过,系统内部是如何启动...原创 2019-05-29 22:02:54 · 2873 阅读 · 2 评论 -
死磕Android_Handler机制你需要知道的一切
文章目录1. 前言2. ThreadLocal工作原理2.1 ThreadLocal demo2.2 ThreadLocal源码理解3. MessageQueue 消息队列3.1 消息队列插入3.2 消息队列查询(next)4. Looper4.1 Looper初始化4.2 Looper#loop5. Handler6. 用一句话总结一下安卓的消息机制7. 消息机制在主线程中的应用7.1 关于主线...原创 2019-05-19 21:05:10 · 3024 阅读 · 3 评论 -
死磕Android_View工作原理你需要知道的一切
平时在开发安卓的过程中,View是我们用的非常非常多的东西.用户所看到的一切关于UI的,都是通过View绘制出来展示到屏幕上的.大多数情况下我们仅仅了解基本控件的使用方法,我们是无法做出非常复杂炫酷的自定义View的.我们需要掌握View的工作原理:测量、布局、绘制流程,掌握了这几个基本的流程我们才能做出更加完美的自定义View.做起来也更加得心应手.当然,View的工作原理,也是大多数面试所必...原创 2019-05-16 19:47:11 · 2528 阅读 · 5 评论