<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[王三的专栏]]></title><description><![CDATA[如果有一天我还能跑，为什么要满足地待在原地呢?]]></description><link>https://blog.youkuaiyun.com/xiaohanluo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiaohanluo]]></copyright><item><title><![CDATA[LeakCanary原理解析]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/78196755</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/78196755</guid><author>xiaohanluo</author><pubDate>Tue, 10 Oct 2017 20:02:01 +0800</pubDate><description><![CDATA[转载注明出处：http://blog.youkuaiyun.com/xiaohanluo/article/details/78196755



使用

LeakCanary是Square为Android应用提供的一个监测内存泄露的工具，源码地址：https://github.com/square/leakcanary。

在gradle文件中引入依赖：



dependencies {
    debug...]]></description><category></category></item><item><title><![CDATA[Median of Two Sorted Arrays（获取两个有序数列的中值）]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/77936830</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/77936830</guid><author>xiaohanluo</author><pubDate>Mon, 11 Sep 2017 19:29:26 +0800</pubDate><description><![CDATA[最近没事刷LeetCode，有一题很有意思，取中值问题。中值是指将统计总体当中的各个变量值按大小顺序排列起来，形成一个数列，处于变量数列中间位置的变量值就称为中位数。当数列的项数N为奇数时，处于中间位置的变量值即为中位数；当数列的项数N为偶数时，中位数则为处于中间位置的2个变量值的平均数。]]></description><category></category></item><item><title><![CDATA[Android性能优化总结]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/76546209</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/76546209</guid><author>xiaohanluo</author><pubDate>Tue, 01 Aug 2017 16:53:52 +0800</pubDate><description><![CDATA[Android系统每隔16ms发出VSYNC信号，对UI进行渲染，如果每次渲染都成功，就能够达到流畅的画面所需要的60fps，为了能够实现60fps，这意味着程序的大多数操作都必须在16ms内完成，时间超出16ms越多，丢的帧就越多。]]></description><category></category></item><item><title><![CDATA[自定义Gradle Plugin]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/73848633</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/73848633</guid><author>xiaohanluo</author><pubDate>Wed, 28 Jun 2017 15:35:15 +0800</pubDate><description><![CDATA[详细讲解了自定义Gradle Plugin的过程，以及中间一些目录结构和注意事项，因为自定义Gradle Plugin使用的是Groovy语言，和Java很像，很容易理解，本篇没有做过多的语言介绍。]]></description><category></category></item><item><title><![CDATA[Gradle用户使用指南]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/72644979</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/72644979</guid><author>xiaohanluo</author><pubDate>Tue, 23 May 2017 16:19:14 +0800</pubDate><description><![CDATA[Gradle作为一种新的集成工具，关于Gradle的配置信息，多版本构建，签名，依赖导入，依赖多工程，测试等等build.gradle中配置信息，都在这里。]]></description><category></category></item><item><title><![CDATA[Android中SPI的使用]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/71515678</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/71515678</guid><author>xiaohanluo</author><pubDate>Wed, 10 May 2017 11:09:43 +0800</pubDate><description><![CDATA[SPI全称是Service Provider Interface，服务提供方接口，服务通常是指一个接口或者一个抽象类，服务提供方是对这个接口或者抽象类的具体实现，由第三方来实现接口提供具体的服务。SPI提供了一种动态的对应用程序进行扩展的机制，通常用作框架服务的拓展或者可替换的服务组件，但是在Android中并没有广泛的使用。]]></description><category></category></item><item><title><![CDATA[Android做下拉刷新的时候，在做些什么]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/64443162</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/64443162</guid><author>xiaohanluo</author><pubDate>Tue, 21 Mar 2017 15:59:37 +0800</pubDate><description><![CDATA[转载注明出处：http://blog.youkuaiyun.com/xiaohanluo/article/details/64443162



1. 简介

好长时间没有写博客了，一来是工作忙，抽不出空，二来是迷上了王者荣耀。现在正好赶上项目空闲期，写一篇关于下拉刷新的文章，个人觉得上来加载更多功能使用场景非常少，而且没有必要做的那么麻烦，文章最后会提一下加载更多的实现。

最近项目中遇见了下拉刷新的需求，...]]></description><category></category></item><item><title><![CDATA[Android之从零开始JNI研发]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/55193157</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/55193157</guid><author>xiaohanluo</author><pubDate>Wed, 15 Feb 2017 14:45:20 +0800</pubDate><description><![CDATA[本篇几乎没有涉及C/C++与java之间变量以及语法等等一些知识点，这些会在下篇来介绍。本人也是在学习探索过程中，如果有错误希望大家指出来。]]></description><category></category></item><item><title><![CDATA[Android进程通信之Messenger&AIDL使用详解]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/53911529</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/53911529</guid><author>xiaohanluo</author><pubDate>Fri, 30 Dec 2016 14:18:05 +0800</pubDate><description><![CDATA[提到的进程间通信（IPC：Inter-Process Communication），在Android系统中，一个进程是不能直接访问另一个进程的内存的，需要提供一些机制在不同的进程之间进行通信。]]></description><category></category></item><item><title><![CDATA[Android截屏事件监听]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/53737655</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/53737655</guid><author>xiaohanluo</author><pubDate>Fri, 23 Dec 2016 11:52:13 +0800</pubDate><description><![CDATA[Android系统没有直接对截屏事件监听的接口，也没有广播，只能自动动手丰衣足食！]]></description><category></category></item><item><title><![CDATA[Android之Service详解]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/53675312</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/53675312</guid><author>xiaohanluo</author><pubDate>Fri, 16 Dec 2016 10:48:20 +0800</pubDate><description><![CDATA[与前一篇Android之Activity的细枝末节是同一系列的文章，是自己在学习和研发过程中，对Service的一些知识点的总结，汇总得到这篇文章。这篇文章会从Service的一些小知识点，延伸到Android中几种常用进程间通信方法。]]></description><category></category></item><item><title><![CDATA[Android之Activity详解]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/53215864</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/53215864</guid><author>xiaohanluo</author><pubDate>Fri, 18 Nov 2016 14:39:07 +0800</pubDate><description><![CDATA[本篇不针对于新手，而是对于Activity中一些常识或者问题进行总结。本篇介绍了Activity的生命周期、启动关闭、状态保存、启动模式、返回栈协同调度等等知识点。]]></description><category></category></item><item><title><![CDATA[MAC端Git安装以及环境搭建]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/53214933</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/53214933</guid><author>xiaohanluo</author><pubDate>Fri, 18 Nov 2016 12:11:14 +0800</pubDate><description><![CDATA[转载注明出处：http://blog.youkuaiyun.com/xiaohanluo/article/details/53214933



Git安装

下载Git有两种方法


直接下载安装包，Git下载地址
用homebrew指令下载，不过首先需要安装homebrew 
在终端执行后面指令安装，homebrew /usr/bin/ruby -e &amp;quot;$(curl -fsSL https://raw.g...]]></description><category></category></item><item><title><![CDATA[Android圆角图片和圆形图片实现总结]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/52945791</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/52945791</guid><author>xiaohanluo</author><pubDate>Thu, 27 Oct 2016 15:14:06 +0800</pubDate><description><![CDATA[Android研发中经常会遇见圆角或者圆形图片的展示，但是系统中ImageView并不能直接支持，需要我们自己做一些处理，来实现圆角图片或者圆形图片，自己最近对这块的实现做了一下总结.]]></description><category></category></item><item><title><![CDATA[Intent以及IntentFilter详解]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/52637520</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/52637520</guid><author>xiaohanluo</author><pubDate>Fri, 23 Sep 2016 16:05:44 +0800</pubDate><description><![CDATA[在Android中有四大组件，这些组件中有三个组件与Intent相关，可见Intent在Android整个生态中的地位高度。Intent是信息的载体，用它可以去请求组件做相应的操作，但是相对于这个功能，Intent本身的结构更值得我们去研究。]]></description><category></category></item><item><title><![CDATA[Java注解Annotation浅析]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/52538909</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/52538909</guid><author>xiaohanluo</author><pubDate>Wed, 14 Sep 2016 16:12:56 +0800</pubDate><description><![CDATA[Java在1.5版本引入注解Annotation，又称Java标注，注解是一种语法元数据，可以被直接使用到源代码中，类/方法/变量/参数/包名等都可以被注解。和Javadoc标签不同，编译器在生成class文件时候能够保留注解代码，同时，可能为了在程序运行过程中（run-time）可以使用注解，Java虚拟机会把注解保留，这样就可以通过反射获取注解Annotation信息]]></description><category></category></item><item><title><![CDATA[Android之图片压缩]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/52485037</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/52485037</guid><author>xiaohanluo</author><pubDate>Fri, 09 Sep 2016 16:09:54 +0800</pubDate><description><![CDATA[在开发中，对于图片的操作，稍有不慎，可能就会消耗大量的内存，导致程序崩溃，所以了解一种通用的技术去处理和加载图片，同时保证UI流畅避免OOM现象，是非常有必要的。那么为什么在Android中对于图片的处理会如此棘手呢？]]></description><category></category></item><item><title><![CDATA[Android事件分发机制详解]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/52416141</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/52416141</guid><author>xiaohanluo</author><pubDate>Mon, 05 Sep 2016 10:40:20 +0800</pubDate><description><![CDATA[Android日常研发时，与View接触占据相当多的时间，而关于View的知识，主要集中在View的绘制和View对于点击事件的处理。关于View的绘制过程，可以查看一下这篇文章的介绍；关于View处理点击事件，可能有人会认为在onTouchEvent()这个方法处理点击事件就行了，不错，具体的处理过程确实是在这个方法中，但是点击事件在View间是怎么分发的？]]></description><category></category></item><item><title><![CDATA[滑动删除Item，拖拽切换Item，你想了解的都在这儿]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/52330537</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/52330537</guid><author>xiaohanluo</author><pubDate>Fri, 26 Aug 2016 17:56:36 +0800</pubDate><description><![CDATA[如果上两篇对RecyclerView介绍后，依然没有引起你的兴趣，那么下面关于RecyclerView的使用我相信一定会让你如获珍宝。列表Item拖拽删除以及拖拽切换位置的交互，在这里都可以看见。]]></description><category></category></item><item><title><![CDATA[RecyclerView使用完全指南，是时候体验新控件了（二）]]></title><link>https://blog.youkuaiyun.com/xiaohanluo/article/details/52251509</link><guid>https://blog.youkuaiyun.com/xiaohanluo/article/details/52251509</guid><author>xiaohanluo</author><pubDate>Fri, 19 Aug 2016 15:56:22 +0800</pubDate><description><![CDATA[关于网格样式和瀑布流样式在本篇会仔细的介绍，细心的同学会发现，自定义间隔在上一篇文章中并没有太过深入，只是介绍了方法的调用时机，但是关于更换间隔样式没有太详细的介绍，是因为列表样式的RecyclerView自定义间隔比较简单，统一放到复杂一点的网格中来讲解。直接进入主题，看看期待已久的网格模式和瀑布流模式的使用吧。]]></description><category></category></item></channel></rss>