孤独狂饮

只要有百分之一的梦想,就要付出百分之百的努力。努力不一定成功,但是不努力就一定不会成功!


  • 首页

  • 卓客Team

  • QPM_性能优化组件

  • shields_徽章系列文章

  • 归档

  • 关于

OkHttp和Okio

发表于 2016-08-08 | 更新于 2016-08-08 |
字数统计 | 阅读时长
本文摘要文本将介绍OkHttp和Okio基本使用 OkHttpHTTP 是现在APP访问网络最流行的方式。通过它我们可以交换数据和媒体信息。而高效的使用HTTP可以让你的加载数据更快并且节省带宽。 OkHttp就是一种HTTP客户端连接,它有如下特性: HTTP/2多路复用Socket到同一个主机,共享链接。 采用连接池技术,可以有效的减少Http链接数量。 无缝集成GZIP压缩技术。 支持Response Cache,避免重复请求。 域名多IP支持。 OkHttp可以处理常见的网络问题: 如果OkHttp连接一个域名失败后,它会尝试连接下一个该域名的IP地址。(需要DNS支持) OkH ...
阅读全文 »

HTTPS的七个误解

发表于 2016-07-25 | 更新于 2016-07-25 |
字数统计 | 阅读时长
这段时间在研究 webview 缓存,为了加快用户进入页面的时间,找了一些资料,突然发现 对 Https 理解的不是很深刻,这里整理一下。 我认为不管是 IOS 同学还是 Android 同学,都应该对此有一定的了解。这篇文章的年底略有久远,但是却可以扫盲,还是值得一看。 误解七:HTTPS无法缓存许多人以为,出于安全考虑,浏览器不会在本地保存HTTPS缓存。实际上,只要在HTTP头中使用特定命令,HTTPS是可以缓存的。 微软的IE项目经理Eric Lawrence写道: “说来也许令人震惊,只要HTTP头允许这样做,所有版本的IE都缓存HTTPS内容。比如,如果头命令是Cache-Co ...
阅读全文 »

一个五年Android开发者百度、阿里、聚美、映客的面试心经

发表于 2016-07-08 | 更新于 2016-07-09 | 分类于 面试说 |
字数统计 | 阅读时长
花絮本文为完整版,加了一些彩蛋哦!文末有面试和必备的技能点总结。 也许会有人感叹某些人的运气比较好,但是他们不曾知道对方吃过多少苦,受过多少委屈。某些时候就是需要我们用心去发现突破点,然后顺势而上,抓住机遇,那么你将会走向另外一条大道,成就另外一个全新的自我。 先简单说说我最近的面试经历吧。面试的公司很多,其中有让我心血沸腾的经历,也有让我感到失望到无助的经历,我将这些体会都记录下来,细想之后很值得,面了这么多公司,要是最后什么也没有留下来,那就太浪费了。至少对于我来说有些东西在整理总结之后才能得到一个肯定的答案。希望这些能对即将换工作或者打算看看机会的你有一些帮助。 下文真的很长,你可 ...
阅读全文 »

使用 Android Studio 内存分析工具

发表于 2016-06-20 | 更新于 2016-06-20 | 分类于 AndroidStudio |
字数统计 | 阅读时长
App的内存使用可以通过以下三个工具分析: Heap Viewer Memory Monitor Allocation Tracker并且,这个三个是互补的可视化内存分析工具。 使用 Memory Monitor 可以查找非正常的 GC 导致的性能问题。 运行 Heap Viewer可以确认出 object 类型是不是 不必要的,或者分配的内存超出我们的预期估计,可能是持续增长,我们预期是在不需要的时候,可以回收内存。 使用 Allocation Tracker 可以确定出你的代码中存在的问题。 Memory Monitor 显示你的 App 当前某一时刻的内存状态(包括可用内存,和占 ...
阅读全文 »

网络请求的 UA

发表于 2016-06-20 | 更新于 2016-06-20 | 分类于 okhttp3 |
字数统计 | 阅读时长
一般我们的客户端请求头里面都会有一个 User Agent 的参数,默认请求下 会直接获取系统里面的一些参数信息,然后发送到服务器。服务器就知道这个设备 大体情况,也可以根据这个来处理,或者禁用某些设备。一般定义的 UA 应该包含下面这些东西(当前也可以删减或去掉的): appName + versionName + versonCode + 渠道号 + 设备基本信息 这里写一些大体的代码,其他可以自行封装: 拼接数据: appName: mContext.getString(R.string.appname) versionName: DeviceUtil.getVersionName(m ...
阅读全文 »

从 volley 切换到 OkHttp 遇到的坑

发表于 2016-06-20 | 更新于 2016-06-24 | 分类于 okhttp3 |
字数统计 | 阅读时长
这几天打算把项目的 volley 切换到 okhttp,遇到了一些小问题,现在予以整理。 之前考虑直接将 volley 切换到 okhttp, 底层肯定使用 okhttp, 请求队列也使用 okhttp。但是考虑到代价可能比较大,所以我是基于网上给的解决方案: 上层队列依然使用 volley,但是对于底层发送请求的地方,可以直接切换到 okhttp. 代理异常?切换成功后,遇到的第一个问题就是:代理功能没法使用,我们客户端 是有联通流量包的功能的,因此必须要加 代理功能。 根据 okhttp 里面 issue 的回答,弄好多次都不行,折腾了一两天左右。 最后也懒得管了,先放放,优先解决其他问 ...
阅读全文 »

分享Java Collection 的一张图

发表于 2016-06-20 | 更新于 2016-06-20 | 分类于 Java |
字数统计 | 阅读时长
在这张图中展示了 Collection 相关一些常用类,例如最常见的 Map(Interface), Collection(Interface), List(Interface) 等等 我们可以看出他们之间的关系以及差别。 例如:HashMap, HastTable, Vector 和 LinkedList等
阅读全文 »

Okio 简单处理I/O操作

发表于 2016-06-20 | 更新于 2016-06-20 | 分类于 okio |
字数统计 | 阅读时长
Android 善用Okio简化处理I/O操作Okio库是一个由square公司开发的,它补充了java.io和java.nio的不足,以便能够更加方便,快速的访问、存储和处理你的数据。而OkHttp的底层也使用该库作为支持。而在开发中,使用该库可以大大给你带来方便。 compile 'com.squareup.okio:okio:1.6.0' Ohio 有两个关键接口, Sink 和 Source, 这两个接口都继承了 Colseable 接口;而 Sink 可以简单的看成 OutputStream, Source 可以简单的看做 InputStream. 而这两个接口凑 ...
阅读全文 »

OkHttp3 源码分析【缓存策略】

发表于 2016-06-20 | 更新于 2016-06-20 | 分类于 okhttp3 |
字数统计 | 阅读时长
本文专门分析 OkHttp 的缓存策略,是 OkHttp 中最简单的一篇 Http 缓存基础知识分析源目前,我们先回顾一下 Http 的缓存 Header 的含义 Expires表示到期时间,一般用在 response 报文中,当超过此事件后相应将被认为是无效的而需要网络连接,反之而是直接使用缓存 Expires: Thu, 12 Jan 2017 11:01:33 GMT Cache-Control相对值,单位是秒,指定某个文件被续多少秒的时间,从而避免额外的网络请求。比expired更好的选择,它不用要求服务器与客户端的时间同步,也不用服务器时刻同步修改配置Expired中的绝对时间, ...
阅读全文 »

OkHttp3源码分析【任务队列】

发表于 2016-06-20 | 更新于 2016-06-20 | 分类于 okhttp3 |
字数统计 | 阅读时长
本文目录 线程池基础 反向代理模块 OkHttp 的任务调度 OkHttp拥有两种运行方式,一种是同步阻塞调用并直接返回的形式,另一种是通过内部线程池分发调度实现非阻塞的一步回调。本文主要分析第二种,即 OkHttp 在多并发网络下的分发调度过程。本文主要分析的是 Dispatcher 对象。 线程池基础 线程池好处有哪些线程池的关键在于线程复用以减少非核心任务的损耗。以下参考自 IBM 知识库: 多线程技术主要解决 处理器单元时间内多个线程执行的问题,他可以显著减少处理器单元内的闲置时间,增加处理器单元的吞吐能力。但如果对多线程应用不当,会增加对单个任务的处理时间。可以举例:如果一台服务 ...
阅读全文 »
1…345…7
gdky005

gdky005

61 日志
13 分类
28 标签
RSS
GitHub CSDN博客 Weibo
© 2021 gdky005
由 Hexo 强力驱动
主题 - NexT.Pisces
京ICP备17002900号-3
本站访客数 人次 本站总访问量 次