线程池参数详解
这里直接拿 OKHttp 源码中的线程池举例:
|
|
Socket 长连接通信实践与 NAT 超时
什么是Socket?
- 即套接字,是一个对 TCP / IP协议进行封装 的编程调用接口(API)
Socket通信模型

HOOK 插件式一键换肤流程分析
换肤流程
首先实现插件式换肤需要知道以下几个流程:
- 在默认情况下通过 setContentView 设置的资源布局(XML)是如何加载到界面上的
- 在 Android 5.0 之前的版本和 5.0 之后的版本按钮是不一样的样式,系统是如何做到换肤的
- 自定义换肤框架,如何知道我们自己的 APK 哪些控件是需要换肤的
- 如何切换 【皮肤插件 / 默认】的肤色
- 如何加载资源包插件
- 重启 APP、进入其他 Activty 如何换肤
Gradle 自定义 plugin 以及项目优化实践
Gradle 是什么?
- 它是一款强大的构建工具,而不是语⾔
- 它使用了 Groovy 这个语言,创造了一种 DSL,但它本身不是语⾔
groovy 是什么
Groovy 是一种动态语言,它和 Java 类似(算是 Java 的升级版,但是又具备脚本语言的特点),都在 Java 虚拟机中运行。当运行 Groovy 脚本时它会先被编译成 Java 类字节码,然后通过 JVM 虚拟机执行这个 Java 字节码类
Gradle 的 Project 和 Tasks
每次构建(build)至少由一个 project 构成,一个 project 由一到多个 task 构成。每个 task 代表了构建过程当中的一个原子性操作,比如编译,打包,生成javadoc,发布等等这些操作
Gradle 的构建流程
ViewPager + Fragment 源码解析与性能优化
独立进程通信之悬浮下拉状态栏实践
前言
我们首先先看下这个效果是怎么样的,如果有人见过百度音箱或者是小米音箱,就应该对这个会清楚一些,也就是图示中我们是自定义了一个下拉状态栏,并没有使用系统原生的,那么我们就可以根据需求实现我们自定义的下拉状态栏 UI,比如音乐通知,时间、天气显示信息等等。不过这种需要自定义的情况一般是针对于 Android 定制化的地方会用到的多一些,但本文更多的是牵扯的是如何将这个下拉状态栏运行在独立进程中,以及进程之间的通信,这样的话即使下拉状态栏崩溃了,也不会影响主进程。

OkHttp 源码分析及网络优化
使用
OKHttp 是作为 Android 开发人员使用最多的网络库之一, 接下来从最基础的使用来介绍 OkHttp 源码里面是如何工作的。
首先需要添加OKHttp的依赖
1
|
implementation 'com.squareup.okhttp3:okhttp:3.5.0' |
Android 事件分发的冲突解决方案
阅读本文前,需要对事件分发机制所有了解,建议先阅读 Android 事件分发机制源码流程分析,但是解决这个问题之前,首先我们要知道,滑动冲突是怎么来的,为什么会存在滑动冲突呢 ?
其实在 Android 中,只要是在界面中内外两层 View 可以同时滑动的时候,这个时候,就会产生滑动冲突了,或者可以理解在同一方向一个 View 上只能响应一组事件序列。当然了,部分情况下,会看到同时滑动的情况,可能是通过特殊的方式,将自己的事件序列传递给其他 View 上面了。
Android 事件分发机制源码流程分析
假设我们的 Activity 中的布局是这样的
