自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (3)
  • 收藏
  • 关注

原创 LeakCannary使用方法及实现原理探究(二)—— LeakCannary实现原理及源码分析

写在前头这里首先将LeakCannary的原理写在这里,让大家有一个初步的印象,然后我们再一步步去分析具体的实现逻辑LeakCannary原理1. Activity onDestroy之后将它放到一个WeakReference2. 这个WeakReference关联到一个ReferenceQueue3. 查看ReferenceQueue是否存在 Activity的引用4. 如果该Aci...

2018-10-16 17:43:41 1040

原创 LeakCannary使用方法及实现原理探究(一)—— 使用方法简述

leakcannary##简介LeakCanary是Square公司研发的一个可视化的内存泄漏分析工具,github地址为https://github.com/square/leakcanary。它的使用非常简单,下面我们将一步步进行分析。##集成LeakCannary在我们的build.gradle中添加如下依赖:dependencies { debugImplementati...

2018-10-15 17:50:09 809 1

原创 Java注解

##注解的定义Java注解是在JDK5时引入的新特性,Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。当然这样解释可能比较晦涩难懂,注解可以简单理解为对一段代码的说明解释。##注解语法###注解的写法public @interface MyAnnotation {}跟接口的写法类似,在inter...

2018-09-18 18:01:32 193

原创 算法题整理(持续更新)

1.一个按升序排列好的数组int[] arry = {-5,-1,0,5,9,11,13,15,22,35,46},输入一个x,int x = 31,在数据中找出和为x的两个数,例如 9 + 22 = 31,要求算法的时间复杂度为O(n);分析:该题不难,主要关注点应该为要求时间复杂度为O(n),因为数组是按升序排列,所以可以定义两个指针i、j,分别从数组的两端开始遍历,如果a[i]+a[j]...

2018-09-11 14:41:43 667 1

原创 Android 网络请求框架volley源码解析(二) —— volley缓存原理

Volley的缓存目录通过上一篇分析中我们发现,创建一个请求队列的同时,会同时创建Volley的缓存目录和DiskBasedCache缓存对象,我们可以得知Volley的缓存目录就是在我们应用内置的cacheDir目录下的volley文件夹中,然后把这个目录用作DiskBasedCache硬盘缓存的目录,源码如下:public static RequestQueue newReques...

2018-09-10 15:47:44 245

原创 Android 网络请求框架volley源码解析(一) —— 网络请求部分

volley是google提供的一个网络通信框架,非常适合我们进行一些数据量不大、频繁的网络通信操作。这是一个开源项目,地址为https://github.com/google/volley,今天我们就分章节来分析一下volley框架源码,探寻它内部的实现机制。基本使用这里列举一个volley最基本的用法,通过该用法入手,来一步步分析volley是怎么进行网络通信的。Req...

2018-09-07 17:08:02 284

原创 Android Avtivity setContentView源码分析

前言 平时我们开发过程中,给Activity设置布局的时候,直接调用的setContentView,然后我们在xml布局文件中写的布局就可以显示出来,那这个过程到底是怎么样的呢,今天我们来分析一下,setContentView都做了什么。Activity setContentView首先我们看Activity的setContentView方法,这个方法有几个重载:pu...

2018-09-04 11:43:05 187

原创 Android Handler机制源码分析

本文分析基于android-25Handler是Android系统提供给我们的一个工具,主要用于多线程间的通讯,比如更新UI等等。一、Handler常见用法1. 首先定义一个Handler,并重写handlerMessage方法,当收到消息时,根据msg.what判断来源,然后进行相关操作,这里是更新了一个textView的显示文字。private Handler m...

2018-08-31 15:36:43 201

原创 HashMap中几点需要注意的地方

HashMap本身的算法保证,会使key hash之后下标的分布尽可能的分散2倍扩容的做法是为了保证分散性,扩容完成之后,要把原来的节点移动一下,链表的位置要么是原来的位置不动,要么是原来的位置+oldCap位置相同时,后面的节点用链表挂在下面,当链表长度超过8个时,将链表转为用红黑树存储(jdk1.8之后)get的时候回根据hash和key共同决定取哪个,先看hash是否相同,再看key...

2018-06-21 10:48:46 1127

原创 Android finish()自动回调时机,Activity资源释放逻辑放在onDestroy中一定合适吗

首先看Google对finish()的描述, Call this when your activity is done and should be closed. The ActivityResult is propagated back to whoever launched you via onActivityResult(). 当activity完...

2018-05-10 11:37:59 3393 2

原创 Java基础提高 String与String.intern()

首先看一段代码,思考运行结果String s0 = new String("ab");String s1 = new String("ab");String s2 = "ab";String s3 = "a" + "b";String s4 = "b";String s5 = "a" + s4;System.out.println(s1.intern(

2018-05-07 15:10:29 202

原创 Android 消息路由框架

本文主要介绍消息路由框架的机制和原理消息框架的作用 可以方便在不同moudle之间的通信,减少互相依赖路由机制的原理MoudleA通过消息路由来分发一个任务到MoudleB,而避免MoudleA直接依赖MoudleB。 需要被执行的任务首先需要进行注册,任务id是唯一的,该注册可以通过写到类的static静态代码块当中,这样当该类被加载的时候这个任务便可以被注册。(后面...

2018-04-11 11:57:22 334

原创 Android如何在service中弹出对话框

最近又听人聊到Android能不能在service中弹出对话框的问题,于是总结一下 答案是肯定的,系统可以在低电量的时候弹出电量不足的提示,那么我们也可以按同样的方法做到 下面介绍在service中弹出对话框的两种方法:1.将dialog的Type设置为TYPE_SYSTEM_ALERT写一个service代码如下:public class DialogService ex...

2018-03-12 17:55:00 10851

原创 Android应用中的图片缓存策略

Android图片缓存的基本思路整理缓存方式主要分为网络缓存,内存缓存,文件缓存这里简单介绍一下后面两种的思路,使用内存缓存和使用文件缓存缓存的基本原理,将从网络中得到的图片存储在本地,避免再次使用时从网络重新加载,可以增快加载速度,减少网络流量的消耗

2018-03-08 17:33:36 346

原创 JsonObject toString() 输出键值对顺序研究

后台有一套接口,需要对传参进行排序,于是写了一套排序方法,在请求接口之前对所有参数排序,这里边用到了JsonObject及其自身的toString方法,测试过程中发现在一台android4.4系统的手机上程序运行不是预期结果,于是有了下面的研究

2018-02-23 16:23:22 14439 2

原创 shell中的xargs命令

shell中的xargs命令xargs命令的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题

2016-09-18 21:30:20 429

原创 Android中实现虚线边框包裹文字的两种方式

下面介绍实现下图所示效果的两种方式: 第一种是通过写shape布局文件来实现给TextView设置background时引用此布局文件即可实现效果,shape布局文件代码如下: <?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/...

2016-09-05 21:45:51 3703

原创 设置Intent.FLAG_ACTIVITY_NEW_TASK和Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED对Activity Stack的影响

这是一个小区广播问题引发的对Intent.FLAG_ACTIVITY_NEW_TASK和Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED的思考一、问题描述-删除未读广播消息后,进入短信-menu小区广播还会弹出广播提示框预制条件 手机有一条未读广播消息测试步骤:1.进入设置-更多-小区广播 删除此条消息2.进入短信-Menu-小区广播预期结

2016-06-27 22:54:20 13201 1

淘宝大学内部培训资料 JVM工作原理

淘宝大学内部培训资料,JVM工作原理,垃圾回收,讲解的很不错。

2018-07-11

git中文手册

本文档是git开发手册,里面有关于git的详细介绍,新手老鸟都建议看看

2018-04-03

MacQQ 消息防撤回

是腾讯官方出的,早起的,没有撤回功能,别人发过的消息,你就看到 我自己一直在用,功能挺多,足够了,谁用谁知道,防撤回是真的必要。

2018-04-03

空空如也

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

TA关注的人

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