自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黑夜

有好东西就会分享给大家

  • 博客(26)
  • 收藏
  • 关注

原创 Android中为什么taskAffinity只能配合SingleTask和FLAG_NEW_TASK一起使用?

这其实涉及到Activity排序的问题。大家发现没有,不管什么启动模式,都不会打乱栈内Activity的顺序。看例子:有A,B,C三个页面,其中A,B默认taskAffinity,C的taskAffinity为tc。下面的例子基于假设:碰到taskAffinity查找对应的任务栈,没有就新建,有就复用为什么Standard配合taskAffinity无效?此时,A,B,C的启动模式都是standard,假设Standard配合taskAffinity有效首先启动A,A存放在默认栈中A启动B,B

2021-12-29 16:39:04 1582

转载 Java并发编程——volatile

https://www.cnblogs.com/dolphin0520/p/3920373.html

2021-12-26 15:24:06 168

原创 谈谈SSL

文章目录SSL介绍SSL特点SSL的位置:概念讲解SSL协议通信过程SSL握手协议握手流程第一阶段第二阶段第三阶段第四阶段SSL记录协议SSL与TLS的异同点SSL介绍SSL:安全套接字协议是Web浏览器和Web服务器之间安全交换信息的协议,它提供两个基本安全服务:鉴别和保密SSL特点保密:所有消息都被加密鉴别:可以单向认证(客户端鉴别服务端),也可以双向认证(服务端鉴别客户端、客户端鉴别服务端)完整性:由于其基于TCP协议,因此可以保证消息的完整性SSL的位置:SSL介于TCP协议之上

2021-12-25 19:54:38 1294 1

原创 基于HTTP的协议(HTTP增强协议)

文章目录SPDYHTTP的性能瓶颈SPDY的设计与功能WebSocketWebSocket的设计与功能功能SPDYSPDY由Google于2010发布,旨在解决HTTP的性能瓶颈,缩短Web页面的加载时间(50%)HTTP的性能瓶颈一条连接上只能发送一个请求请求只能从客户端开始,客户端不能接收除响应以外的指令。请求/响应首部未经压缩就发送,首部信息越多延迟越大发送冗余首部。每次互相发送相同的首部造成的浪费较多。可任意选择数据压缩格式,非强制压缩发送SPDY的设计与功能SPDY没有完全

2021-12-06 14:51:51 1179

原创 OKHttp4(二)——拦截器(五)——CallServerInterceptor

文章目录前言过程问题前言该拦截器的作用就是使用上一个ConnectInterceptor开辟的I/O窗口,通过这个窗口向Socket管道内读取/写入数据。然后将服务器的响应构建为一个Response返回,最后根据Connection头信息判断需不需要关闭连接过程如果该请求带有Body,则会检测请求中有没有Expect:100-continue头信息,如果有则仅仅发送头信息,待服务器返回响应确认可以发送body后,才会接着发送body判断需不需要分块发送读取响应,构建Response判断需不需

2021-11-03 17:10:14 176

原创 OKHttp4(二)——拦截器(四)——ConnectInterceptor

文章目录1. 前言2. I/O2.1 Exchange2.2 ExchangeCodec2.3 ExchangeFinder3. 连接(Connection)3.1 可用连接1. 前言总的来说:该拦截器的作用是给当前的请求(Call)分配一个Exchange,在后面一个拦截器中,使用这个Exchange进行I/O操作。其会利用ExchangeFinder来获取一个运行在可用连接上的ExchangeCodec。然后由此ExchangeCodec来构建一个exchange详细的说:该类涉及到了I/O

2021-11-03 15:26:08 265

原创 OKHttp4 全面解析(二)——拦截器(三)——CacheInterceptor

文章目录前言缓存命中策略更新/保存缓存可能触发的事件前言看名字就知道此拦截器的作用是处理缓存。具体来说就是:对于某个请求,查找合适的缓存。若没有则向下一个拦截器传递更新缓存缓存命中策略底层采用DiskLruCache框架进行缓存命中策略:根据HTTP的头信息:Cache-ControlCache-Control:Max-AgeExpireLast-ModifiedVary等头信息来决定是否命中缓存。更新/保存缓存只会缓存GET方法请求的响应可能触发的事件

2021-11-01 10:59:22 138

原创 OKHttp4 全面解析(二)——拦截器(二)——BridgeInterceptor

文章目录1.前言2.用户请求转化为网络请求3. 将网络响应转化为用户响应1.前言该拦截器的作用:将用户请求转化为网络请求将网络响应转化为用户响应用户请求:用户创建的请求网络请求:真正发送的请求用户响应:经过解码/解压缩的网络响应网络响应:真正接收到的响应更具体点的就是,这个拦截器会帮你添加Cookies,解码/解压缩收到的响应2.用户请求转化为网络请求听着挺唬人的,其实就是为了防止用户请求的一些头信息不符合HTTP 规范,而做的一个检查机制。会从用户请求中新建一个请求。在新的请求上

2021-10-29 17:26:47 297

原创 OKHttp 4全面解析(二)——拦截器(一):RetryAndFollowUpInterceptor拦截器

此拦截器的主要功能:错误重试和重定向跟踪错误重试发生错误后,首先会判断该请求是不是可恢复的有以下情况之一,则该请求是不可恢复的,否则是可恢复的配置了retryOnConnectionFailure为false,即指定错误时不恢复请求只能发送一次,并且已经发送了(已经发送是指,请求已经经过了所有的拦截器处理,数据已经写入到Socket中)当错误类型为:底层协议出错、使用Https协议时,证书认证出错,证书锁定出错。没有可用路由重定向...

2021-10-28 16:46:35 1288

原创 Http(四)——响应头信息(二)

文章目录前言1. Allow2. `Content-Encoding`3. Content-Language4.Content-Length5. Content-Location6. Content-Range7. Content-Type8.Expires9.Last-Modified谢谢各位HTTP 头信息前言上一节我们介绍了9种响应头信息。这一节介绍剩余的10种头信息 。AllowContent-EncodingContent-LanguageContent-LengthContent

2021-10-28 15:21:20 747

原创 Http头信息(三)——响应头信息(一)

文章目录前言1. `Accept-Ranges`2. `Age`3. `ETag`4. `Location`5. `Proxy-Authenticate`6. `Retry-After`7. `Server`8. `Vary`9. `WWW-Authenticate`前言前面向大家介绍了通用头信息请求头信息从本章开始,向大家介绍响应头信息。响应头信息,顾名思义,就是在服务器返回给客户端的响应中使用的头信息。本篇文章将会介绍:Acctpt-RangesAgeETagLocation

2021-10-27 15:32:11 1148

原创 Http头信息(二)——请求头信息(二)

文章目录前言1. `If-Match`2. `If-Modified-Since`3. `If-Unmodified-Since`4. `If-None-Match`5. `If-Range`6. `Range`7. `Refer`8. `TE`Reference前言上一篇文章介绍了:AcceptAccept-CharsetAccept-EncodingAccept-LanguageAuthorizationProxy AuthorizationExpectFromHostMax-

2021-10-21 19:37:10 529

原创 Http之Multipart介绍

文章目录1. 什么是`Multipart`2.包含的对象1) `multipart/form-data`2) `multipart/byteranges`1. 什么是MultipartMultipart:多部分对象集合。可以容纳多份类型的数据。看不懂?没关系,看完例子就懂了2.包含的对象multipart/form-data哎呀,这个我熟,传文件必写的。以前只是知道怎么用,却不知道为什么要这么用。看完这篇文章你就懂了multipart/byteranges1) multipart/for

2021-10-21 19:17:43 9040

原创 Http头信息(二)——请求头信息(一)

文章目录前言1. `Accept`2. `Accept-Charset`3. `Accept-Encoding`4. `Accept-Language`5.`Authorization`6. `Proxy Authorization`7. `Expect`8.`From`9. `Host`10. `Max-Forwards`Reference前言请求头信息是发送请求时专用的头信息,本节将会介绍:AcceptAccept-CharsetAccept-EncodingAccept-Language

2021-10-19 17:51:01 1424

原创 Http头信息(一)——通用头信息(二)

介绍上一篇博文着重介绍了Cache-Control,这篇博文将会介绍剩余的:ConnectionDateTransfer-EncondingTrailerUpgradeViaWarning1. ConnectionConnection头信息有2个作用,分别是:控制不再转发给代理服务器的头信息管理持久连接(1).控制不再转发的头信息Connection:逐跳首部什么是逐跳首部?参见:这可能是最全的Http头信息资料了例如:客户端发送给代理服务器的中头信息中是GE

2021-10-17 17:30:20 454 1

原创 Http头信息(一)——通用头信息(一)——Cache-Control

1、介绍Cache-Control头信息的取值,决定了如果管理和使用缓存。其在请求和响应中都可以使用2、取值缓存请求头信息(以下取值应用于请求头信息中):指令说明no-cache可以接收缓存,但需要对缓存做有效性验证no-store不能保存或缓存这个请求及对应的响应max-age=秒可以接收有效期内的缓存max-stale=秒可以接收过了有效期,但没过max-stale的缓存min-fresh=秒可以接收最近xx秒内不过期的缓存no-tra

2021-10-15 19:00:10 1532

原创 Http头信息(一)——通用头信息

文章目录1、什么是通用头信息2、包含哪些头信息1、什么是通用头信息通用头信息,即请求和响应都会使用的头信息。2、包含哪些头信息首部字段名说明Cache-Control控制缓存行为Connection连接管理Date创建报文的日期时间Pragma报文指令Trailer报文末端的首部一览Transfer-Encoding指定报文主体的传输编码方式Upgrade升级为其他协议Via代理服务器的相关信息Warning错误通

2021-10-15 15:53:35 453

原创 这可能是最全的Http头信息资料了

文章目录Hello,大家好。从本篇博文开始,我将向大家介绍Http的头信息。什么是头信息就不说了,大家可以把本系列博文当做字典查阅,欢迎收藏、点赞,转发。头信息可分为4类,分别是:名称描述通用头信息请求和响应都会使用的头信息请求头信息发送请求时会使用的头信息响应头信息服务端发送响应时使用的头信息实体头信息针对请求或响应内的数据时使用的头信息接下来,将安装上表的顺序,分别介绍:通用,请求,响应,实体头信息,并会附上例子说明。欢迎关注。下篇文章,开始通

2021-10-15 15:27:28 145

原创 Android Binder跨进程通信

1、跨进程的原理跨进程通信必须经过第三方介质,要么是内存,要么是外存(文件)以内核为例:进程A将自己的数据拷贝到内核中,进程B在将内核中的数据拷贝到进程B中。问:跨进程通信需要内核的支持,Binder不是内核的一部分,为什么可以支持跨进程通信?答:Binder采用了Linux的动态内核可加载模块机制,将Binder作为一个内核模块加载到了内核空间,这个模块叫Binder驱动Binder采用了Linux中的内存映射技术,减少了数据的拷贝次数,提高了效率2、Binder通信过程中涉及到的模型

2021-08-17 16:05:17 241

原创 SharedPreference的一些知识

**先说结论:1、SharedPreference是否是线程安全的,是否是进程安全的?SharedPreference是线程安全的,不是进程安全的**2、为什么SharedPreference不适合存储大量数据?因为SharedPreference是一次性将所有数据都加载到内存中的3. SharedPreference中apply与commit的区别?apply是异步的,其会将操作封装成一个事务,然后将事务提交到线程池,具体执行时间要看线程池的调度commit是同步的,其会在当前线程执行。

2021-08-16 17:33:02 640

原创 Loop为什么没有卡死主线程

文章目录1、为什么不卡主线程2、主线程在消息循环时占用CPU资源吗?1、为什么不卡主线程说Loop不卡主线程也不准确,其实是卡的,那么为什么我们感受不到呢,因为很多工作不是在主线程完成的。在开始循环Loop之前,会开启一个线程,这个线程会处理一些工作,然后通过消息机制回调到主线程,主线程被唤起,所以我们感受不到卡顿。为什么在主线程执行长时间操作会卡顿?因为view的绘制是在主线程进行的,虽然消息传递的很及时,但是主线程来不及处理,所以会造成卡顿2、主线程在消息循环时占用CPU资源吗?

2021-08-16 14:56:18 190

原创 [kotlin]kotlin中的伴生对象(companion object)到底是个什么东西?

文章目录写在前面第一步,写出kotlin代码第二步,转成Java代码第三步,查看java代码第四步、得出结论写在前面写作不易,转载注明出处: https://www.jianshu.com/p/ddfed1df606c 或者我同步更新的CSDN博客:相信初学kotlin的人,对与kotlin中的companion object会有疑惑,也有不少人将这个东西当作java的静态来使用,今天就来扒一扒到底什么是companion object话不多说,直接上例子,注:以下测试基于kotlin 211-

2021-07-28 14:18:53 5248 1

原创 Android指纹识别,兼容Android 6.0 - Android 11

目录前言概览1.类2.权限详细介绍1.`BiometricManager`属性和方法是否可用的状态码2.`BiometricPrompt`属性和方法实战参考:写作不易,转载请注明出处前言官方的指纹识别在Android 6.0引入,Android 6.0之前指纹识别由厂商自己定义。所以Android 6.0之前的指纹识别碎片化严重。概览1.类1.FingerprintManager:Android 6.0引入,Android 9.0 废弃。使用时需加入权限:permission USE_FIN

2021-07-15 15:39:33 2213 3

转载 标准化和归一化什么区别?

转载自:https://www.zhihu.com/question/20467170作者:thothsun链接:https://www.zhihu.com/question/20467170/answer/839255695来源:知乎通常来说,它们都是指特征工程中的特征缩放过程,使用特征缩放的作用是:使不同量纲的特征处于同一数值量级,减少方差大的特征的影响,使模型更准确。 (如:将特征取值的原始范围-100 ~ 100缩放至-1 ~ 1)加快学习算法的收敛速度。参考sklearn的官方文档的数

2021-06-21 10:30:43 332

原创 tf.variable_scope,reuse复用变量

reuse的取值有3个:None:使用父容器(作用域)的reuse值,若没有父容器,则是变量创建模式,即若变量已存在则报错True:变量复用,若变量还没有创建,则报错tf.AUTO_REUSE:变量复用,若变量还没创建,则创建变量后复用变量复用需要配合tf.get_variable()使用,为什么不用tf.Variable()呢?因为tf.Variable()每次都会新建变量,如何第二次创建的变量名和第一次的相同,这tf.Variable()会自动对第二次的进行重命名处理。例如a1 =

2021-06-19 16:55:33 489

原创 耳机控制小说翻页

耳机控制小说翻页

2016-11-19 14:38:23 11400 2

空空如也

空空如也

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

TA关注的人

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