聊聊OkHttp实现WebSocket细节,包括鉴权和长连接保活及其原理!

2020-03-23
阅读 8 分钟
4.8k
OkHttp 应该算是 Android 中使用最广泛的网络库了,我们通常会利用它来实现 HTTP 请求,但是实际上它还可以支持 WebSocket,并且使用起来还非常的便捷。

面试官:“看你简历上写熟悉 Handler 机制,那聊聊 IdleHandler 吧?”

2020-02-20
阅读 7 分钟
2.2k
Handler 机制算是 Android 基本功,面试常客。但现在面试,多数已经不会直接让你讲讲 Handler 的机制,Looper 是如何循环的,MessageQueue 是如何管理 Message 等,而是基于场景去提问,看看你对 Handler 机制的掌握是否扎实。

TCP三次握手、四次挥手出现意外情况时,为保证稳定,是如何处理的?

2020-02-13
阅读 5 分钟
7.8k
当我们聊到 TCP 协议的时候,聊的最多的就是三次握手与四次挥手。但是大部分资料和文章,写的都是正常的情况下的流程。但是你有没有想过,三次握手或者四次挥手时,如果发生异常了,是如何处理的?又是由谁来处理?

图解算法:单向链表做加法运算

2019-12-24
阅读 3 分钟
1.7k
问:给出两个非空的链表,来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且每个结点只能存储一位数字。将这两个链表相加起来,返回一个新的链表,表示他们之和。

Kotlin 重载个方法,还有两幅面孔,省代码的同时也带来一个深坑 | Kotlin 原理

2019-11-07
阅读 6 分钟
5.9k
今年五月的 Google I/O 上,Google 正式向全球宣布 Kotlin-First 这一重要概念,Kotlin 将成为 Android 开发者的首选语言。

常见的链表翻转,字节跳动加了个条件,面试者高呼「我太难了」| 图解算法

2019-11-05
阅读 5 分钟
1.7k
本文首发自公众号「承香墨影(ID:cxmyDev)」,欢迎关注。 一. 序 我又来讲链表题了,这道题据说是来自字节跳动的面试题。 为什么说是「据说」呢?因为我也是看来的,觉得题目还是挺有意思,但是原作者给出的方案,我想了想觉得还有优化空间,就单独拿出来讲讲。 就像本文的题目说的,这是一道关于链表翻转的题。链表的...

图解:K 个一组翻转链表 | LeetCode 级别:困难

2019-11-04
阅读 3 分钟
1.6k
在面试的算法题中,经常会碰到链表相关的面试题。虽然链表的结构比较好理解,但是链表的题还是比较考教代码能力的。一些单链表的题,指针指来指去,很容易就把结点的 next 指针弄丢了,造成链表断裂。

面试官:"准备用HashMap存1w条数据,构造时传10000还会触发扩容吗?"

2019-10-30
阅读 6 分钟
1.7k
HashMap 算是我们最常用的集合之一,虽然对于 Android 开发者,Google 官方推荐了更省内存的 SparseArray 和 ArrayMap,但是 HashMap 依然是最常用的。

图解算法:单链表两两反转 | 眼睛会了手就会系列

2019-10-18
阅读 3 分钟
2.1k
链表根据其指针的指向和丰富程度,可以分为单链表、双向链表、循环链表、双向循环链表。其差别就是,是否在单链表的基础上为结点,增加更丰富的指针,让其实现更丰富的功能。

Android 本地化适配:RTL(right-to-left) 适配清单

2019-09-23
阅读 6 分钟
2.6k
当你接触一款出海 App 的时候,除了需要了解海外 Google Service 的整个生态圈,还要做好不同语言的适配。语言适配最通用的做法就是根据不同系统语言设定,配置不同的语言资源(strings.xml),而其中比较特殊的就是例如阿拉伯的 RTL 布局,它不仅改变了语言,还改变了 UI 布局和使用习惯。

EventBus 消息的线程切换模型与实现原理

2019-09-18
阅读 6 分钟
2.3k
通常我们就是使用 EventBus 分发一些消息给消息的订阅者,除此之外我们还可以通过 EventBus 将消息传递到不同的线程中去执行,处理消息。这其中还涉及到一些线程切换问题、线程池的问题,在使用的过程中,还有一些配置的选择,此时我们需要根据不同的业务场景,来选择不同的线程切换方式。

Gson 解析 Json 容错才是关键,举几个常用的实例!

2019-06-25
阅读 7 分钟
7.3k
前几天写了一篇,关于利用 GSON 在 JSON 序列化和反序列化之间,数据容错的文章。最简单的利用 @SerializedName 注解来配置多个不同 JSON Key 值,或者再使用 @Expose 来配置一些例外的情况。更复杂一些的数据,可以使用 TypeAdapter 来解决,TypeAdapter 可以说是一颗 GSON 解析 JSON 的银弹,所有复杂数据解析以及容错...

8月不支持 64 位,App 将无法上架 Google Play!需要怎么做?

2019-06-11
阅读 6 分钟
4.7k
事情是这样的,前几天收到 Google Play 的通知邮件,这才想起来有几款在 Google Play 上架的 App,还没有支持 64 位 CPU 架构。

让最新的 Android Q Beta 3 强制重启的 Project Mainline,到底是什么?

2019-05-30
阅读 4 分钟
1.2k
最新的 Android 版本 Q,已经发布了 Android Q Beta 3,虽然没有正式发布,但是不少用户已经加入了测试计划,抢先体验 Android Q 的新功能。

AS负责人说不必用Kotlin重写,但OkHttp拿Kotlin重写了一遍,就发了OkHttp 4.0!

2019-05-17
阅读 2 分钟
3k
虽然 Android Studio 的负责人 Jeffery 已经澄清,只是 Kotlin-First 而不是 Kotlin-Must,并不需要将 App 用 Kotlin 重写一遍。但是 OkHttp 已经开始用 Kotlin 重写的工作,我们来看看这次重写后带来的差异。

App 签名过期或泄露怎么办?别担心,Google 已经给出解决方案!

2019-05-14
阅读 4 分钟
3.1k
Android 签名是自证明的,并不会对证书进行 CA 认证。也就是我们可以使用工具自行生成签名证书,只要是一个正确的签名,系统就会承认,并且允许安装。

Flutter 1.5 发布,正式成为全平台 UI 框架!

2019-05-09
阅读 3 分钟
3.5k
在 Google I/O 2019 上,Dart 团队宣布推出新的 Flutter 稳定版本 1.5,这是 Flutter 迄今为止最大的一次版本发布。

滴滴 App 的质量优化框架 Booster,开源了!

2019-04-28
阅读 5 分钟
2.7k
当 App 达到一定体量的时候,肯定是要考虑质量优化。有些小问题,看似只有 0.01% 触发率,但是如果发生在 DAU 过千万的产品中,就很严重了。

Android 网络优化,使用 HTTPDNS 优化 DNS,从原理到 OkHttp 集成

2019-03-25
阅读 6 分钟
7.7k
在 App 访问网络的时候,DNS 解析是网络请求的第一步,默认我们使用运营商的 LocalDNS 服务。有数据统计,在这一块 3G 网络下,耗时在 200~300ms,4G 网络下也需要 100ms。

WebView,我已经长大了,知道自己区分是否安全了!

2019-03-13
阅读 3 分钟
3.9k
如果你在用 Android 原生系统(Google Play 服务),在使用 WebView 加载某些网页时,一定遇到过以下的安全警告红屏。

“崩溃了?不可能,我全 Catch 住了” | Java 异常处理

2019-01-16
阅读 6 分钟
7.3k
在任何一个稳定的程序中,都会有大量的代码在处理错误,有一些业务错误,我们可以通过主动检查判断来规避,可对于一些不能主动判断的错误,例如 RuntimeException,我们就需要使用 try-catch-finally 语句了。

Google 的 QUIC 华丽转身成为下一代网络协议: HTTP/3.0

2018-11-15
阅读 2 分钟
4.7k
IETF 是 Internet Engineering Task Force 的缩写,意思是互联网工程任务小组,主要负责互联网标准的开发和推动。被他们“钦定”,HTTP-over-QUIC 成为HTTP/3.0 算是没跑了。

分词,难在哪里?科普+解决方案!

2018-09-11
阅读 6 分钟
4.3k
分词,我想是大多数大前端开发人员,都不会接触到的一个概念。这个不影响我们了解它,毕竟我们要多方向发展。今天就来简单介绍一些分词,我尽量用简介的语言来描述这个概念,并且最后再提供一个解决方案,希望对你有帮助。

再好好聊聊 HTTP 里的 Cookie | 实用 HTTP

2018-08-08
阅读 5 分钟
2.2k
HTTP 协议在网络知识中占据了重要的地位,HTTP 协议最基础的就是请求和响应的报文,而报文又是由报文头(Header)和实体组成。大多数 HTTP 协议的使用方式,都是依赖设置不同的 HTTP 请求/响应 的 Header 来实现的。

图解:HTTP 范围请求,助力断点续传、多线程下载的核心原理

2018-07-23
阅读 5 分钟
4.8k
HTTP 协议在网络知识中占据了重要的地位,HTTP 协议最基础的就是请求和响应的报文,而报文又是由报文头(Header)和实体组成。大多数 HTTP 协议的使用方式,都是依赖设置不同的 HTTP 请求/响应 的 Header 来实现的。

HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP

2018-07-10
阅读 4 分钟
2.3k
HTTP 协议在网络知识中占据了重要的地位,HTTP 协议最基础的就是请求和响应的报文,而报文又是由报文头(Header)和实体组成。大多数 HTTP 协议的使用方式,都是依赖设置不同的 HTTP 请求/响应 的 Header 来实现的。

HTTP 内容编码,也就这 2 点需要知道 | 实用 HTTP

2018-07-04
阅读 4 分钟
3.3k
HTTP 协议在网络知识中占据了重要的地位,HTTP 协议最基础的就是请求和响应的报文,而报文又是由报文头(Header)和实体组成。大多数 Http 协议的使用方式,都是依赖设置不同的 HTTP 请求/响应 的 Header 来实现的。

图解 HTTP 的缓存机制 | 实用 HTTP

2018-06-25
阅读 6 分钟
2.7k
HTTP 协议在网络知识中占据了重要的地位,HTTP 协议最基础的就是请求和响应的报文头(Header),大多数 Http 协议的使用方式,都是依赖设置不同的 HTTP 请求/响应 的 Header 来实现的。

辅助模式最终考验的是想象力,先来看看怎么用!| Accessibility

2018-06-21
阅读 9 分钟
12.4k
Android 的辅助模式(Accessibility)功能非常的强大。基本上被获取到授权之后,可以监听手机上的任何事件,例如:屏幕点击、窗口的变化、以及模拟点击、模拟系统按键等等。

写给 Android 开发的小程序布局指南,Flex 布局!

2018-06-14
阅读 7 分钟
5.6k
想要开发一款小程序,其实和我们正常写一款 App 类似,你需要有精美的前端布局,并且同时还需要处理和前端 UI 组件的交互以及它们背后的逻辑。