支持的类型

switch支持char、byte、short、int、Character、Byte、Short、Integer、String、Enum十种类型,其中对Emun与String的支持是在JDK1.5和JDK1.7的时候增加的,同时switch并不支持long、double、float。

阅读全文 »

Gradle Plugin

首先我们需要创建一个插件来注册我们的Transform,步骤如下

阅读全文 »

简介

Leakcanary是square公司开源的内存泄露分析工具,所谓square出品必属精品,LeakCanary提供了一整套的内存泄漏监控 & 分析自动化流程。具体的流程如下

阅读全文 »

简介

在介绍HTTPS握手协议之前,我们首先介绍一些密码学相关的知识,这样才可以更好的了解HTTPS握手协议

阅读全文 »

题目描述

给定一个字符串s,对s的子串进行检测。
每次检测,待检子串都可以表示为 queries[i] = [left, right, k]。我们可以重新排列子串 s[left], …, s[right],并从中选择最多k项替换成任何小写英文字母。 
如果在上述检测过程中,子串可以变成回文形式的字符串,那么检测结果为 true,否则结果为 false。
返回答案数组 answer[],其中 answer[i] 是第 i 个待检子串 queries[i] 的检测结果。
注意:在替换时,子串中的每个字母都必须作为 独立的 项进行计数,也就是说,如果 s[left..right] = “aaa” 且 k = 2,我们只能替换其中的两个字母。(另外,任何检测都不会修改原始字符串 s,可以认为每次检测都是独立的)

阅读全文 »

内存泄漏概念

内存泄漏指的是一个本该被回收的对象因为某些原因导致其不能被回收,通俗来说就是该对象理论上不再使用,但是仍无法被回收。

阅读全文 »

概述

在使用MAT分析内存快照的时候我们一般会关注对象占用的内存大小,在MAT中我们可以观察到两个数据Shallow Heap和Retained Heap,网上有很多文章介绍这两个数据的概念以及计算方式,但是很多文章都是有问题的(因此走了不少弯路),所以自己研究了一下,接下来分别介绍。

阅读全文 »

Hprof概述

hprof最初是由J2SE支持的一种二进制堆转储格式,hprof文件保存了当前java堆上所有的内存使用信息,能够完整的反映虚拟机当前的内存状态。

阅读全文 »

贝塞尔原理

贝塞尔曲线(Bézier curve),又称贝兹曲线,是应用于二维图形应用程序的数学曲线,贝塞尔曲线的运用十分广泛,可以说贝塞尔曲线奠定了计算机绘图的基础(因为它可以将任何复杂的图形用精确的数学语言进行描述),接下来以二阶贝塞尔曲线为例介绍贝塞尔曲线的定义、性质。
二阶曲线由两个数据点(P0 和 P2),一个控制点(P1)来描述曲线状态,如图所示红色曲线就是二阶贝塞尔曲线

推导过程如下

阅读全文 »

Andriod 5.0及之后开始支持Activity之间的共享元素动画,共享元素即启动Activity的时候,Activity A中的控件能够通过动画的方式流畅的过渡到Activity B中对应的控件。
之前在项目中用到了共享元素动画,遇到了一些坑,碍于不了解底层原理&时间紧迫,实现的效果并不完美。最近得空带着一些疑惑阅读了一波源码,本文将带着这些问题来一步步解析源码,下图为实现效果。


PS:本文源码基于android-28

阅读全文 »
0%