自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 安卓组件化学习

随APP的不断更新,代码也逐渐复杂,开发效率下降,单一工程下代码耦合严重,当需要调试的时候非常耗时,单独修改一个模块无法单独测试。组件化去除模块的耦合,使得每个模块可以独立当APP存在,对于其他模块没有直接的依赖关系。此时业务模块就成为了业务组件。而除了业务组件还有抽离出来的业务基础组件,提供业务组件使用,但不是独立的业务,例如:分享组件,广告组件;还有基础组件,即单独的基础功能,与业务无关,例如 图片加载、网络请求等。这些后面会详细说明。组件化带来的好处。

2022-11-17 22:16:52 279 1

原创 Okhttp源码5:缓存相关

这是OKHttp的源码分析第五篇,主要分析的是OKHttp的缓存相关。在前面的文章中,我们也简单写过OKHttp的缓存相关。在 Android之网络请求2————OkHttp的基本使用 中写了如何使用缓存。在Android之网络请求6————OkHttp源码3:拦截器链 中写了缓存拦截器,并在其中分析了缓存策略相关的源码。在这里我们来详细的分析一下OKHttp的缓存相关。OKHttp的缓存部分,一个是设置缓存这一方面由用户(程序员自己调用),还有进行缓存的时机,在缓存拦截器中发生。

2022-11-14 10:32:32 350

原创 OkHttp源码4:网络操作

主要侧重于整个过程的网络操作至此,分析完了OKHttp的网络请求部分,总结一下,在重试拦截器中获得Address和StreamAllocation(负责根据请求创建连接),在连接拦截器中获得连接,最后在网络进行发送请求头,请求体,获得响应头,获得响应体。值得注意的是连接的获得 即:如果有连接,直接用没有可用的连接,第一次去连接池中查找,找到后直接用没有找到,补充路由信息,在连接池中二次查找。依然没有找到,创建新连接,然后连接server,将其放入到连接池中。

2022-11-13 20:30:51 1392

原创 OKHttp源码3:拦截器

从上面的代码可以看出了,先获取原请求头,然后在请求中添加请求头,然后在根据需求,决定是否要填充Cookie,在对原始请求做出处理后,使用chain的procced方法得到响应,接下来对响应做处理得到用户响应,最后返回响应。关于连接拦截器更多的内容,可以看下一篇博客,okHttp的网络操作部分。这里我们只是做一个简单的分析并不深入其中,我们继续来看下一个拦截器。即CallServerInterceptor拦截器。

2022-11-10 17:37:19 519

原创 Okhttp源码2:发送请求

OkHttp采用Dispatcher技术,类似于Nginx,与线程池配合实现了高并发,低阻塞的运行Okhttp采用Deque作为缓存,按照入队的顺序先进先出OkHttp最出彩的地方就是在try/finally中调用了finished函数,可以主动控制等待队列的移动,而不是采用锁或者wait/notify,极大减少了编码复杂性。

2022-11-09 12:13:03 864

原创 Okhttp源码1:框架

接口层接收用户的网络访问请求(异步/同步),发起实际的网络访问请求。连接层顾名思义就是负责网络连接,在连接层有一个线程池,统一管理所有Socke连接,当用户发起一个新的网络请求时,OKHttp会在连接池中找到是否有符合要求的连接,如果有则直接通过该连接发送网络请求;否则新创建一个网络连接。Call描述了一个实际的访问请求,用户的每一个网络请求都是一个Call实例,Call本身是一个接口,定义了Call的接口方法,在实际执行过程中,OkHttp会为每一个请求创建一个RealCall,即Call的实现类。

2022-11-08 21:16:14 80

原创 okhttp的拦截和封装

OKHttp中,Interceptors拦截器是一种强大的机制,可以监视,重写和重试Call实例。

2022-11-08 20:26:53 773

原创 Android之网络请求2————OkHttp的基本使用

okhttp是一个第三方库,用于Android中网络请求这是一个开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso和LeakCanary)。用于替代HttpUrlConnection和Apache HttpClient(android API23 里已移除HttpClient)。

2022-11-08 11:33:09 5289

原创 安卓网络请求1————Http协议

http是超文本传输协议的缩写(Hyper Text Transfer Protocol),是从万维网服务器传送到本地浏览器的传送协议。

2022-11-07 20:02:23 1967

原创 Android的消息机制

Android的消息机制也是Handler机制,主要的作用是用来在不同线程之间的通信,通常使用在子线程执行完成一些耗时操作,需要回到主线程更新界面UI时,通过Handler将有关UI的操作切换到主线程。

2022-10-27 20:45:30 484

原创 虚拟机类加载机制

通常情况下,我们都是直接使用系统类加载器。但是,有的时候,我们也需要自定义类加载器。比如应用是通过网络来传输 Java类的字节码,为保证安全性,这些字节码经过了加密处理,这时系统类加载器就无法对其进行加载,这样则需要自定义类加载器来实现。自定义类加载器一般都是继承自 ClassLoader类,从上面对 loadClass方法来分析来看,我们只需要重写 findClass 方法即可。自定义类加载器的核心在于对字节码文件的获取,如果是加密的字节码则需要在该类中对文件进行解密。

2022-10-26 20:41:48 63

原创 安卓 动画的深入分析

除了系统提供的四种View动画,还可以自定义动画View动画。自定义View动画只需要继承Animation抽象类,然后重写它的initialize和applyTransformation方法,在initialize方法中做初始化处理,在applyTransformation中进行相应矩阵变换即可。

2022-10-26 11:01:28 1149

原创 View的工作原理

View的工作原理

2022-10-25 21:56:58 102

原创 再次理解View的事件体系

探究View的事件体系

2022-10-25 15:09:19 105

原创 安卓IPC机制

IPC是Inter-Process Communication的缩写,含义是进程间通信,用于两个进程之间进行数据交互的过程,任何操作系统都有IPC机制,但不同的操作系统有着不同的通信方式,Android系统是一种基于Linux内核的移动操作系统,Linux的跨进程通信主要通过管道、共享内存、内存映射等实现的,但Android有自己的进程间通信机制,最具代表性的就是Binder。线程:CPU调度的最小单元,是一种有限的资源。

2022-10-24 21:18:18 2073

原创 关于Intent的使用

Intent传递对象

2022-10-22 16:45:23 70

原创 安卓 探究服务

安卓 服务

2022-10-22 15:54:27 602

原创 安卓 跨程序共享数据———探究内容提供器

内容提供器

2022-10-22 11:07:22 453

原创 安卓数据存储全方案———详解持续化技术

安卓数据存储

2022-10-21 22:28:46 255

原创 安卓详解广播机制

安卓广播传播机制

2022-10-21 21:17:11 257

原创 探究碎片化Fragment

Fragment

2022-10-21 14:39:55 178

原创 ListView和RecyclerView学习

LIstView和RecyclerView

2022-10-20 20:21:13 230

原创 安卓开发详解布局

安卓4重布局

2022-10-19 18:45:15 348

原创 安卓开发 常用的控件

安卓开发德常用控件

2022-10-19 17:13:18 399

原创 第一行代码第二章 探究活动

安卓活动的认识

2022-10-19 15:45:28 82

原创 Java 存储类别 链接和内存管理

第12章 存储类别 链接和内存管理存储类别注意 *pt不是标识符因为他不是一个名称。int * pt=&entity指定对像的值称为左值。存储期指对象保留了多长时间。标识符用于访问对象,可用作用域和链接描述,作用域和链表表明了程序哪部分可以使用它。不同的存储类别又不同的存储期和链表。作用域作用域描述程序可访问标识符的区域。作用域可以是块作用域 函数作用域 函数原型作用域或文件作用域。块 是指一对花括号括起来的代码区域。链接分为 外部链接 内部链接 无链接无链接:

2020-12-13 17:37:23 80

原创 ThoughtWorks西邮联合创新实验室第一次排位赛

ThoughtWorks西邮联合创新实验室第一次排位赛题目Sky题干熊熊学长从小喜欢奇特的东西,而且天生对数字特别敏感,一次偶然的机会,他发现了一个有趣的四位数2992,这个数,它的十进制数表示,其四位数字之和为2+9+9+2=22,它的十六进制数BB0,其四位数字之和也为22,同时它的十二进制数表示1894,其四位数字之和也为22,啊哈,真是巧啊。熊熊学长非常喜欢这种四位数,由于他的发现,所以这里我们命名其为Sky数。但是要判断这样的数还是有点麻烦啊,那么现在请你帮忙来判断任何一个十进制的四位

2020-11-30 18:42:30 105

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除