自定义博客皮肤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)
  • 资源 (28)
  • 收藏
  • 关注

原创 Android线程间通信

1.Handler机制runOnUiThread方法View.post方法2.HandlerThread3.IntentService4.AsyncTask参考:http://developer.android.com/reference/android/os/Handler.htmlhttps://developer.android.google.cn/reference/android/os/Handler.html

2020-11-29 16:09:11 416

原创 Android进程间通信

下图引用《Android开发艺术探索》的总结:https://developer.android.google.cn/guide/components/processes-and-threadsAndroid 多进程通信Android多进程实现,一个APP多个进程Android中的多进程模式Android进程间通信 - 几种方式的对比总结Android进程间通信的几种方式...

2020-11-29 16:00:04 114

原创 Windows查看指定端口被哪个进程占用

1.打开CMD命令行,输入 netstat -ano|findstr “端口号” 查看进程,不要漏掉双引号:netstat -ano|findstr "端口号"以查找 8989 端口为例,通过 Netstat 可以找到是 PID 为 31684 的进程占用了 8989 端口:2.使用Tasklist查看对于 PID 的进程名:tasklist|findstr "PID号"可以看到是 java.exe 进程占用了该端口:如果我们想结束该进程,可以在任务管理器(详细信息)内找到该进程,可直接

2020-11-29 15:17:23 25766 1

原创 OkHttp原理解析之面试题分析

面试中通常是问些问题考察你对OkHttp的原理是否有深入理解。如何使用OkHttp发送网络请求并将结果更新至UI的方式使用AsyncTask + OkHttp的同步请求使用OkHttp的异步请求+runOnUiThread方法或者Handler可否介绍一下OkHttp的整个异步请求流程OkHttp对于网络请求都有哪些优化,如何实现的OkHttp框架中都用到了哪些设计模式单例模式:(建议用单例模式创建OkHttpClient)OkHttpClient, 可以通过 new OkHttp

2020-11-28 19:03:39 3024

原创 OkHttp原理解析之请求服务器拦截器

五、请求服务器拦截器CallServerInterceptor,利用HttpCodec发出请求到服务器并且解析响应生成Response。先讲解一个新的请求头:Expect: 100-continue,这个请求头一般出现于上传大容量请求体或者需要验证服务器是否愿意接收请求体。即代表了客户端需要先询问服务器是否愿意接收请求体数据。OkHttp的做法:如果服务器允许则返回100,客户端继续发送请求体;如果服务器不允许则直接返回给用户。同时服务器也可能会忽略此请求头,一直无法读取应答,此时抛出超时异

2020-11-28 17:42:27 289

原创 OkHttp原理解析之连接拦截器

目标:DNS解析SSL握手与加密HTTP代理:普通代理与隧道代理SOCKS代理前置知识分析OkHttp的连接拦截器ConnectInterceptor之前,先来学习预备知识,包括代理和DNS。代理:不使用代理的情况(普通http请求)使用HTTP代理的情况(使用HTTP代理时又分为发送Http请求,发送Https请求的情况)使用SOCKS代理的情况DNSDNS原理下面进行详细讲解。代理普通http请求(即不使用代理)http请求报文:GET /v3/weathe

2020-11-28 17:39:25 1042

原创 OkHttp原理解析之缓存拦截器

三、缓存拦截器CacheInterceptor,在发出请求前,先判断是否有命中的缓存。如果命中则可以不发请求,直接使用缓存着的响应(当然要经过一系列的验证来判断这个缓存着的响应是否的确可以直接使用)。 (只会存在Get请求的缓存,Post请求不会被缓存)步骤为:1、从文件缓存中获得对应请求的响应缓存2、创建CacheStrategy ,创建时会判断是否能够使用缓存或发起网络请求,在CacheStrategy 中存在两个成员:networkRequest与cacheResponse,分别代表需要发起网

2020-11-28 17:35:33 528

原创 OkHttp原理解析之桥接拦截器

二、桥接拦截器BridgeInterceptor,连接应用程序和服务器的桥梁,我们发出的请求将会经过它的处理才能发给服务器,比如设置请求内容长度,编码,gzip压缩,cookie等,获取响应后保存Cookie等操作。这个拦截器相对比较简单,功能总结起来就是:补全请求与响应后处理。补全请求头:请求头说明Content-Type请求体类型,如:application/x-www-form-urlencoded、multipart/form-dataContent-Length/

2020-11-28 17:32:38 253

原创 OkHttp原理解析之重试及重定向拦截器

一、重试及重定向拦截器第一个拦截器:RetryAndFollowUpInterceptor,主要就是完成两件事情:重试与重定向。重试请求阶段发生了 RouteException 或者 IOException会进行判断是否重新发起请求。RouteException:catch (RouteException e) { //todo 路由异常,连接未成功,请求还没发出去 if (!recover(e.getLastConnectException(), streamAllocation,

2020-11-28 17:31:21 2141

原创 DNS域名解析系统

为什么需要DNS人们习惯使用主机名,比如www.yahoo.com、www.facebook.com等,但路由器喜欢数字格式的IP地址。需要DNS把主机名翻译为IP地址。DNS 的过程①用户主机上运行着DNS的客户端。Windows用户可以打开任务管理器,在服务那一栏可以看到名为DNS Client的运行着的后台服务。②浏览器从接收到的url中抽取出域名,就是访问的主机名,比如:www.baidu.com,并将这个主机名传送给DNS应用的客户端③DNS客户端向DNS服务器发送一份查询报文,报

2020-11-25 21:59:12 770

原创 计算机专业相关书籍

操作系统Operating Systems: Three Easy Pieces官方地址:http://pages.cs.wisc.edu/~remzi/OSTEP/作者: Remzi Arpaci-Dusseau / Andrea Arpaci-Dusseau豆瓣:Operating Systems豆瓣评分:9.7Operating Systems : Principles and Practice作者: Thomas Anderson / Michael Dahlin豆瓣:Operati

2020-11-25 17:52:14 409

原创 读书相关

1.读专业书最好多读几本,选领域内的评价比较好的几本都进行阅读,因为不同作者的视角和思考方式都不一样,可能那本比较适合别人,但是这本比较适合你。2.思考一个问题的一个比较好的方式是:从历史沿革开始讲,解决这个问题最初用的是什么方法,是如何实现的,解决了哪些问题,还剩下哪些问题没有解决(一个大的问题通常可以分为几个小的问题进行解决)。这个方法有什么缺点,针对这些缺点后来人们提出了什么新的解决方法进行改进。这样对这个问题有一个系统性的认识,知道了人们对这个问题都做过哪些一系列的探索,会有非常深刻的理解,不容

2020-11-25 17:35:45 65

原创 用户态与内核态

参考:内核态(内核空间)和用户态(用户空间)的区别和联系这个系列讲的也挺好的:Windows核心编程入门:7 用户态到内核态的穿越

2020-11-25 16:54:39 99

原创 DNS原理

DNS是:①一个由分层的DNS服务器实现的分布式数据库;②一个使得主机能够查询分布式数据库的应用层协议。DNS 服务器通常是运行 BIND (Berkeley lnternet Name Domain) 软件 [BIND 2012 ]的UNIX 机器。DNS 协议运行在 UDP 之上,使用 53 号端口。DNS 使用了大量的 DNS 服务器 ,它们以层次方式组织,并且分布在全世界范围内。没有一台 DNS 服务器拥有因特网上所有主机的映射。有 3 种类型的 DNS 服务器: 根 DNS 服务器、顶级域

2020-11-24 19:07:58 165

原创 OSI七层模型

七层模型只有最下三层有实体设备,上四层都是软件层面的表示了。各层的设备:1.网络层:路由器、防火墙(硬件防火墙)、3层交换机(开启路由功能)2.数据链路层:网卡、网桥、交换机3.物理层:中继器、集线器(HUB)、网线电缆铜缆传输过程:数据在应用层,表示层和会话层时属于高层数据,到了传输层数据被封装上TCP头部,到了网络层封装上一层IP包头,继续传输到数据链路层,数据被封装上一层LLC子层的头部和MAC子层的头部信息,然后通过物理层将数据通过电信线路传输出去,接收信息则与这个规则正好相反。防火墙根

2020-11-24 17:31:01 1276

原创 Android的ServiceManager、SystemServiceManager、SystemServer、SystemService分析

ServiceManager、SystemServiceManager、SystemServer、SystemService十几个比较重要的类,他们之间是什么关系?下面进行源码分析。参考:ServiceManager,SystemServer,SystemServiceManager,SystemService—简述这个几个类的关系Android SystemServiceManager分析...

2020-11-24 16:38:28 1253

原创 Android进程保活

1.进程优先级2.保活的原理3.保活的方式当然保活不是绝对保活,只是提高保活率,要想像微信/QQ一样做到绝对保活,必须得联系各个手机厂商加入白名单,否则不可能做到绝对保活。

2020-11-23 21:41:39 159

原创 从源码角度分析Handler核心机制

看代码不要什么都看,只需要看主线代码,主线代码逻辑掌握了再选择性的看细节代码。要知道学什么,该学到什么程度,不然就是什么都会一点,什么都不精。规划好路线:1、早点进大厂,评级(需要锻炼技术)2、创业(需要锻炼技术)3、转行一定要确定好边界,不要什么都做,APP开发涉及:Java基础、UI、四大组件、性能优化、NDK、开源框架、架构、数据结构与算法、设计模式等。做APP开发就想办法做好APP开发,不要想着深入研究Linux系统开发,人的精力是有限的,做好一个方向才会精进。...

2020-11-21 23:36:03 287 1

原创 为什么基于TCP的应用需要在应用层加入心跳包机制

TCP协议不是有keep-alive机制吗,那为什么基于TCP的应用还需要自己实现一套心跳包机制?参考:为什么基于TCP的应用需要心跳包(TCP keep-alive原理分析)

2020-11-20 17:06:45 641

原创 Android运行时注解和反射技术之事件分发框架EventBus

Android通过仿写EventBus组件通信框架 掌握运行时注解+反射及事件总线通信核心原理

2020-11-20 16:14:01 420

原创 Android编译时注解技术之依赖注入框架Butterknife

仿写ButterKnife框架核心功能 掌握编译时注解+注解处理器APT生成Java代码的技术Android进阶系列8-编译时注解框架ButterKnife浅析android手动编写ButterKnife编译时注解框架Android编译时技术的进阶实战打造全自动View注入框架ButterKnife【Android进阶】——编译时技术实战,打造全自动注入框架Butter knife...

2020-11-20 16:11:43 218

原创 Java线程与线程池与阻塞队列原理

线程池策略corePoolSize:核心线程数;maximunPoolSize:最大线程数每当有新的任务加入到线程池时,第一步: 先判断线程池中当前线程数量是否达到了corePoolSize,若未达到,则新建线程运行此任务,且任务结束后将该线程保留在线程池中,不做销毁处理,若当前线程数量已达到corePoolSize,则进入下一步;第二步: 判断工作队列(workQueue)是否已满,未满则将新的任务提交到工作队列中,满了则进入下一步;第三步: 判断线程池中的线程数量是否达到了maxumunPo

2020-11-14 15:46:25 336

原创 Java线程与操作系统线程

Java线程在早期的Classic虚拟机上(JDK1.2以前),是基于一种被称为“绿色线程”(Green Threads)的用户线程实现的,但从JDK1.3起,“主流”平台上的“主流”商用Java虚拟机的线程模型普遍都被替换为基于操作系统原生线程模型来实现,即采用1:1的线程模型。操作系统支持怎样的线程模型,在很大程度想会影响上面的Java虚拟机的线程是怎么样映射的,这一点在不同的平台上很难达成一致,因此《Java虚拟机规范》中才不去限定Java线程需要使用哪种线程模型来实现。深入理解JVM(③)线程与

2020-11-13 17:47:46 148

原创 OkHttp原理解析

官方地址:https://square.github.io/okhttp/简介:由Square公司贡献的一个处理网络请求的开源项目,是目前Android使用最广泛的网络框架。从Android4.4开始HttpURLConnection的底层实现采用的是OkHttp。特点:支持HTTP/2并允许对同一主机的所有请求共享一个套接字通过连接池,减少了请求延迟默认通过GZip压缩数据响应缓存,避免了重复请求的网络请求失败自动重试主机的其他ip,自动重定向OkHttp原理解析OkHttp 3.1

2020-11-12 17:39:12 1147 1

原创 LinkedHashMap原理及源码解析

参考:图解LinkedHashMap原理

2020-11-09 20:56:08 282 1

原创 Handler.post()、View.post()和Activity.runOnUiThread()

Activity.runOnUiThread和View.post()也是属于线程间通信的方法。

2020-11-02 20:47:07 350

WindowManagerService相关类图.eddx

Activity,Window,DecorView,ViewRootImpl,WindowManager,WindowManagerImpl,WindowManagerGlobal,WindowManagerService相关类图

2020-03-20

WindowManagerService相关类图.eddx

Activity,Window,DecorView,ViewRootImpl,WindowManager,WindowManagerImpl,WindowManagerGlobal,WindowManagerService相关类图

2020-03-20

WindowManagerService相关类图.eddx

Activity,Window,DecorView,ViewRootImpl,WindowManager,WindowManagerImpl,WindowManagerGlobal,WindowManagerService相关类图

2020-03-19

Binder.rar

Binder实例,client进程调用server进程的a+b函数,用server进程返回结果给client进程。 Binder跨进程通信相关的client进程,Proxy,BinderProxy,Binder驱动,Binder,Stub,server进程的时序图

2020-03-19

Android系统启动流程.xmind

Android系统启动流程的思维导图,包含了Android系统的关键进程以及关键服务。。

2020-03-19

OnTouchEvent.rar

Android事件分发机制的工程Demo,包含有Android事件分发机制的流程图,方便理解Android事件分发机制。

2020-02-28

区块链与资产证券化(ABS)

介绍资产证券化abs的整体原理,以及基于区块链技术的资产证券化管理平台的优势。

2019-03-25

Ethereum代码整体框架(根据源码分析)

Ethereum代码整体框架(根据源码分析),在看以太坊源码时做的整体框架的思维导图。

2019-01-15

A Kafka-based Ordering Service for Fabric

A Kafka-based Ordering Service for Fabric,讲解fabric的基于Kafka的排序服务。

2019-01-11

区块链技术及其应用

介绍区块链技术的背景,整体技术原理,以及相关应用。

2018-11-30

白硕《企业区块链》

上海交易所前总工程师白硕 做的演讲《企业区块链》。。

2018-11-27

雷凯-北京大学深圳 -块游记-CCF+CBC2018+PPT(杭州)-20181125

2018中国区块链技术大会上,北京大学深圳研究生院副教授雷凯做的演讲

2018-11-27

区块链—形式化表示与体系结构演进--斯雪明

2018中国区块链技术大会上,斯雪明做的演讲,区块链—形式化表示与体系结构演进

2018-11-27

银行支付系统的SWIFT架构

银行支付系统的SWIFT架构,SWIFT作为银行间标准化的载体。

2018-07-23

区块链技术在跨境支付领域的应用研究

区块链技术在跨境支付领域的应用研究, 可供参考学习。

2018-07-23

CustomHttpURLConnectionImpl

实现HttpURLConnection,创建自己想要的HttpURLConnection连接

2016-04-08

SqlCommand_Parameters

SqlCommand_Parameters属性用法例子,亲自运行过,没有问题初学者参考

2014-03-24

SqlCommand_ExecuteScalar方法

SqlCommand_ExecuteScalar方法,亲自运行过,没有问题初学者参考

2014-03-24

SqlCommand_ExecuteNonQuery方法

SqlCommand_ExecuteNonQuery方法,亲自运行过,没有问题初学者参考

2014-03-24

SqlDataReader

介绍 SqlDataReader对象例子,亲自运行过,没有问题初学者参考

2014-03-24

DataSet对象

介绍 DataSet对象例子,亲自运行过,没有问题初学者参考

2014-03-24

最小生成树算法详解

详细的最小生成树全解,讲述金典的最小生成树算法,全面掌握最小生成树算法

2013-05-11

空空如也

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

TA关注的人

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