<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lu_xin_的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/lu_xin_</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; lu_xin_]]></copyright><item><title><![CDATA[Android MQTT消息推送实践]]></title><link>https://blog.csdn.net/lu_xin_/article/details/54380124</link><guid>https://blog.csdn.net/lu_xin_/article/details/54380124</guid><author>lu_xin_</author><pubDate>Thu, 12 Jan 2017 17:35:44 +0800</pubDate><description><![CDATA[大概的消息推送过程就是这样,手机端订阅(Subscribe)一个Topic,当服务器有新消息的时候就发布(public)到所有的订阅者哪里去.MQTT全称Message Queuing Telemetry Transport，消息队列遥测传输本文记录Android客户端的实现.实现参考自开源项目https://www.eclipse.org/paho/在开始阅读Android客户端代码之前，先看一下]]></description><category></category></item><item><title><![CDATA[Please assign more memory to Gradle in the project's gradle.properties file]]></title><link>https://blog.csdn.net/lu_xin_/article/details/53215495</link><guid>https://blog.csdn.net/lu_xin_/article/details/53215495</guid><author>lu_xin_</author><pubDate>Fri, 18 Nov 2016 13:46:21 +0800</pubDate><description><![CDATA[看图]]></description><category></category></item><item><title><![CDATA[迭代器，Java嵌套类和内部类]]></title><link>https://blog.csdn.net/lu_xin_/article/details/51917565</link><guid>https://blog.csdn.net/lu_xin_/article/details/51917565</guid><author>lu_xin_</author><pubDate>Fri, 15 Jul 2016 15:03:39 +0800</pubDate><description><![CDATA[这里模拟ArrayList的实现为避免和系统的集合重名，这里使用MyArrayList作为类名。public class MyArrayList<T> implements Iterable<T> {
    private int thesize;
    private T[] theItems;
    ...
    public int size() {
        return th]]></description><category></category></item><item><title><![CDATA[设计模式三-行为模式]]></title><link>https://blog.csdn.net/lu_xin_/article/details/51896955</link><guid>https://blog.csdn.net/lu_xin_/article/details/51896955</guid><author>lu_xin_</author><pubDate>Wed, 13 Jul 2016 13:59:36 +0800</pubDate><description><![CDATA[策略设计模式策略设计模式也叫算法族模式。目的是该算法改变的时候并不影响客户的使用。实现的基本思路非常简单，定义一个算法接口，然后各种不同的算法去实现这个接口，客户端调用使用的是接口而不是实现，说以当改变实现的时候客户端是不需要改变的。/*
 * 策略模式，又叫算法簇模式，就是定义了不同的算法族，并且之间可以互相替换，此模式让算法的变化独立于使用算法的客户。
 */
public interface]]></description><category></category></item><item><title><![CDATA[设计模式二]]></title><link>https://blog.csdn.net/lu_xin_/article/details/51880980</link><guid>https://blog.csdn.net/lu_xin_/article/details/51880980</guid><author>lu_xin_</author><pubDate>Mon, 11 Jul 2016 15:24:40 +0800</pubDate><description><![CDATA[结构模式结构模式包含下面7种模式，他们之间的发展关系如图。 
适配器设计模式概述：适配器模式就是将一种类型转换成另外一种类型，解决类之间的兼容性问题。
实现方式：适配器类药继承自适配源类，实现目标类的接口，适配器内部实际上调用的是适配源类的方法。
使用：在需要使用目标类的地方直接创建适配器对象。
扩展：这里介绍的是类适配器，还有对象适配器，接口适配器。
/**
 * 源类，待适配
 * @autho]]></description><category></category></item><item><title><![CDATA[设计模式一]]></title><link>https://blog.csdn.net/lu_xin_/article/details/51879406</link><guid>https://blog.csdn.net/lu_xin_/article/details/51879406</guid><author>lu_xin_</author><pubDate>Mon, 11 Jul 2016 13:50:53 +0800</pubDate><description><![CDATA[设计模式一创建型模式概述：创建型模式一般来讲是指通过这种模式来生成对象。那么生成的对象也不是想生成什么对象就生成什么对象，如果是这样的话那就乱套了，也不符合面向对象的设计原则。不论是什么样的工厂模式他创建的对象都是某一个类别的对象，也就是实现了相同接口的对象。
1. 简单工厂模式 简单工厂模式通俗的讲就是：你告诉我你要什么东西，然后我就给你返回什么。如果我没有你要的东西，那么就返回一个null。]]></description><category></category></item><item><title><![CDATA[使用merge subView优化布局]]></title><link>https://blog.csdn.net/lu_xin_/article/details/51395023</link><guid>https://blog.csdn.net/lu_xin_/article/details/51395023</guid><author>lu_xin_</author><pubDate>Fri, 13 May 2016 14:26:17 +0800</pubDate><description><![CDATA[减少视图层级 merge
merge标签在UI的结构优化中起着非常重要的作用，它可以删减多余的层级，优化UI。merge多用于替换FrameLayout或者当一个布局包含另一个时，merge标签消除视图层次结构中多余的视图组。例如你的主布局文件是垂直布局，引入了一个垂直布局的include，这是如果include布局使用的LinearLayout就没意义了，使用的话反而减慢你的UI表现。这时可以使用]]></description><category></category></item><item><title><![CDATA[Android中优秀控件学习]]></title><link>https://blog.csdn.net/lu_xin_/article/details/51220481</link><guid>https://blog.csdn.net/lu_xin_/article/details/51220481</guid><author>lu_xin_</author><pubDate>Fri, 22 Apr 2016 15:26:08 +0800</pubDate><description><![CDATA[AutoCompleteTextView与SearchView 
AutoCompleteTextView效果 
 
AutoCompleteTextView 可以监听输入文字的变化，同时提供一个ArrayAdapter适配器。开发者可以向这个适配器中添加数据，数据会以上图中下拉列表形式展示出来。
需要注意的地方： 
布局文件中写法如下，默认AutoCompleteTextView会在输入2个字符时]]></description><category></category></item><item><title><![CDATA[android 混淆打包]]></title><link>https://blog.csdn.net/lu_xin_/article/details/51220213</link><guid>https://blog.csdn.net/lu_xin_/article/details/51220213</guid><author>lu_xin_</author><pubDate>Fri, 22 Apr 2016 15:05:46 +0800</pubDate><description><![CDATA[首先生成自己的签名文件在\Java\jdk\bin目录下有一个keytool工具。配置好环境变量以后，在CMD中输入keytool -genkey，然后按照提示操作就可以。最后会在C:\user\当前用户\目录下生成一个.keystore文件。这个文件就是签名文件。配置混淆打包需要的参数在Eclipse中新建的项目的根目录下回有一个proguard.cfg或者proguard-project.tex]]></description><category></category></item><item><title><![CDATA[Java split()方法使用注意问题]]></title><link>https://blog.csdn.net/lu_xin_/article/details/51213305</link><guid>https://blog.csdn.net/lu_xin_/article/details/51213305</guid><author>lu_xin_</author><pubDate>Thu, 21 Apr 2016 21:46:45 +0800</pubDate><description><![CDATA[当使用竖线分割一个字符串的时候必须写成\|这样，这样才会被正则表达式识别。如果直接写成|，那么解析后分割后的结果就是会在String value="内蒙古包钢医院,包头宾馆(钢铁大街店)(40.651957,109.824734|40.658006,109.835388)";
        value=value.substring(value.lastIndexOf("(")+1, value.]]></description><category></category></item><item><title><![CDATA[滑动刷新效果原理]]></title><link>https://blog.csdn.net/lu_xin_/article/details/51151725</link><guid>https://blog.csdn.net/lu_xin_/article/details/51151725</guid><author>lu_xin_</author><pubDate>Thu, 14 Apr 2016 16:44:22 +0800</pubDate><description><![CDATA[主要使用到的类：
NestedScrollingChild
NestedScrollingParent 
参考这里 
参考这里 
NestedScrolling提供了一套父 View 和子 View 滑动交互机制。要完成这样的交互，父 View 需要实现 NestedScrollingParent 接口，而子 View 需要实现 NestedScrollingChild 接口。 
   实现 Nes]]></description><category></category></item><item><title><![CDATA[自定义View的总结]]></title><link>https://blog.csdn.net/lu_xin_/article/details/51151503</link><guid>https://blog.csdn.net/lu_xin_/article/details/51151503</guid><author>lu_xin_</author><pubDate>Thu, 14 Apr 2016 15:01:06 +0800</pubDate><description><![CDATA[总结来自官方文档 
首先Android里边的视图是以树形结构组织起来的。视图树的绘制是从视图的根节点开始的。这就要求去测量和绘制这个视图树时遍历视图树上的每一个View。每一个Viewgroup也相当于一个树，他也有责任保证他的每一个子View的Draw方法会被调用。同样的每一个子View也有责任绘制自己。因为树是按顺序遍历的，这意味着ViewGroup会在子View被绘制之前已近被绘制了。（Vie]]></description><category></category></item><item><title><![CDATA[Picasso-A powerful image downloading and caching library for Android]]></title><link>https://blog.csdn.net/lu_xin_/article/details/51135002</link><guid>https://blog.csdn.net/lu_xin_/article/details/51135002</guid><author>lu_xin_</author><pubDate>Tue, 12 Apr 2016 16:56:56 +0800</pubDate><description><![CDATA[Git地址代码分析：待完善。。。]]></description><category></category></item><item><title><![CDATA[Android Studio之maven Central，JCenter]]></title><link>https://blog.csdn.net/lu_xin_/article/details/51134849</link><guid>https://blog.csdn.net/lu_xin_/article/details/51134849</guid><author>lu_xin_</author><pubDate>Tue, 12 Apr 2016 16:49:31 +0800</pubDate><description><![CDATA[Android studio 是从哪里得到库的？Android Studio是从build.gradle里面定义的Maven 仓库服务器上下载library的。Apache Maven是Apache开发的一个工具，提供了用于贡献library的文件服务器。总的来说，只有两个标准的Android library文件服务器：jcenter 和  Maven Central。jcenter 
jcente]]></description><category></category></item><item><title><![CDATA[Android V7包学习笔记更新中.....]]></title><link>https://blog.csdn.net/lu_xin_/article/details/51121483</link><guid>https://blog.csdn.net/lu_xin_/article/details/51121483</guid><author>lu_xin_</author><pubDate>Tue, 12 Apr 2016 13:15:59 +0800</pubDate><description><![CDATA[关于V4  V7  V13VX包介绍转自这里 
1, Android Support V4, V7, V13是什么？ 
本质上就是三个java library。2, 为什么要有support库？ 
如果在低版本Android平台上开发一个应用程序，而应用程序又想使用高版本才拥有的功能，就需要使用Support库。3, 三个Support 库的区别和作用是什么？ 
Android Support v4]]></description><category></category></item><item><title><![CDATA[在Android Studio中有六种依赖]]></title><link>https://blog.csdn.net/lu_xin_/article/details/51038478</link><guid>https://blog.csdn.net/lu_xin_/article/details/51038478</guid><author>lu_xin_</author><pubDate>Fri, 01 Apr 2016 17:29:31 +0800</pubDate><description><![CDATA[在Android Studio中有六种依赖 
Compile，Provided，APK，Test compile，Debug compile，Release compileCompile 
compile是对所有的build type以及favlors都会参与编译并且打包到最终的apk文件中。Provided 
Provided是对所有的build type以及favlors只在编译时使用，类似ec]]></description><category></category></item><item><title><![CDATA[动态类生成预加载-dexmaker使用]]></title><link>https://blog.csdn.net/lu_xin_/article/details/51034226</link><guid>https://blog.csdn.net/lu_xin_/article/details/51034226</guid><author>lu_xin_</author><pubDate>Fri, 01 Apr 2016 09:39:31 +0800</pubDate><description><![CDATA[文章来源 
下面这个例子非常典型，可以说入门非常好了。过程很简单，生成一个包含一个函数的类，在主程序里面动态加载（使用ClassLoader），然后执行类里面的函数。这是在Java平台的例子，我直接在Android上进行编程的，后面或说明相应的问题以及解决办法，下来看看这个例子吧。public final class HelloWorldMaker {
    public static void]]></description><category></category></item><item><title><![CDATA[关于wifi连接与断开的监测]]></title><link>https://blog.csdn.net/lu_xin_/article/details/50962603</link><guid>https://blog.csdn.net/lu_xin_/article/details/50962603</guid><author>lu_xin_</author><pubDate>Wed, 23 Mar 2016 13:47:51 +0800</pubDate><description><![CDATA[网上关于wifi打开或者关闭的监听例子还是比较多的，但是关于wifi连接到某一个point或者从某一个point断开的监听却比较少。经过研究，终于找到了对应得API。分享给大家。下边直接上代码： 
说明：这里是直接在Application里边注册的广播。代码注释已近很详细了，大家自己看。 
isNetWorkConnected这个变量代表当前wifi是连接还是断开。package com.benxu]]></description><category></category></item><item><title><![CDATA[自定义View属性]]></title><link>https://blog.csdn.net/lu_xin_/article/details/50962498</link><guid>https://blog.csdn.net/lu_xin_/article/details/50962498</guid><author>lu_xin_</author><pubDate>Wed, 23 Mar 2016 13:34:43 +0800</pubDate><description><![CDATA[效果如下： 
思路：选取一张图片，在如图片上上画一个圆。原始图片如下：代码：继承自View，重写OnDraw方法。package com.benxun.view;import com.benxun.R;import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitma]]></description><category></category></item><item><title><![CDATA[使用achartengine绘制折线图]]></title><link>https://blog.csdn.net/lu_xin_/article/details/48339805</link><guid>https://blog.csdn.net/lu_xin_/article/details/48339805</guid><author>lu_xin_</author><pubDate>Thu, 10 Sep 2015 10:30:51 +0800</pubDate><description><![CDATA[// 要绘制的四条折线的名字
        String[] titles = new String[] { "Crete", "Corfu", "Thassos",
                "Skiathos" };
        // 折线图的x坐标
        List<double[]> x = new ArrayList<double[]>();
        for (]]></description><category></category></item></channel></rss>