<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xupingwei]]></title><description><![CDATA[移动开发]]></description><link>https://blog.youkuaiyun.com/xupingwei000</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xupingwei000]]></copyright><item><title><![CDATA[Handler消息机制原理]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/55254609</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/55254609</guid><author>xupingwei000</author><pubDate>Thu, 16 Feb 2017 12:53:15 +0800</pubDate><description><![CDATA[1.什么是Handler
   用于管理多线程对UI的操作


2.为什么会出现Handler   
   1）只允许主线程对UI操作，UI线程是非线程完全的。（非线程安全，多线程操作同一代码，会产生不确定的结果）为了避免多个线程同时操作UI所造成的线程安全问题。


3.Handler功能
   1）在新启动的线程中发送消息
    2）在主线程中获取，处理消息


 ]]></description><category></category></item><item><title><![CDATA[Android中的性能优化]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/55254547</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/55254547</guid><author>xupingwei000</author><pubDate>Thu, 16 Feb 2017 12:44:58 +0800</pubDate><description><![CDATA[1.布局优化

尽量减少布局中的层级删除布局中无用的控件和层级如果布局中既可以使用LinearLayout也可以使用RelativeLayout，那么就才用LinearLayout，这是因为RelativeLayout功能复杂，布局过程花费更多的CPU时间。需要通过嵌套的方式完成的布局，采用RelativeLayout。采用标签，标签和ViewStub,标签和标签一起使用从而减少布局的层级。]]></description><category></category></item><item><title><![CDATA[策略模式]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/52873642</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/52873642</guid><author>xupingwei000</author><pubDate>Thu, 20 Oct 2016 16:07:17 +0800</pubDate><description><![CDATA[1.定义一个策略接口IStrategy.java/**
 * 定义一个策略接口，operate是要被实现的方法
 */
public interface IStrategy {    public void operate();
}2.定义3种行为，实现IStrategy 中的operate方法
在行为BackDoor.java中实现operate方法
public class BackDoor i]]></description><category></category></item><item><title><![CDATA[用SwipyRefreshLayout实现下拉刷新，上滑加载更多]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/52872711</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/52872711</guid><author>xupingwei000</author><pubDate>Thu, 20 Oct 2016 15:01:28 +0800</pubDate><description><![CDATA[用SwipyRefreshLayout实现下拉刷新，上滑加载更多数据]]></description><category></category></item><item><title><![CDATA[Android中用文件形式将List数据缓存在本地]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/52779786</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/52779786</guid><author>xupingwei000</author><pubDate>Mon, 10 Oct 2016 17:29:15 +0800</pubDate><description><![CDATA[1.存储数据



     /**
     * 数据存放在本地
     *
     * @param tArrayList
     */
    public void saveStorage2SDCard(ArrayList tArrayList, String fileName) {

        FileOutputStream fileOutputStream = null;]]></description><category></category></item><item><title><![CDATA[给一个接口返回这个接口的所有实现类]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/52779414</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/52779414</guid><author>xupingwei000</author><pubDate>Mon, 10 Oct 2016 17:02:40 +0800</pubDate><description><![CDATA[在Java中，给一个接口，返回这个接口的所有实现类。代码来源：设计模式之禅]]></description><category></category></item><item><title><![CDATA[Python基础语法1]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/52383247</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/52383247</guid><author>xupingwei000</author><pubDate>Wed, 31 Aug 2016 11:28:23 +0800</pubDate><description><![CDATA[# -*- coding: UTF-8 -*-
print("Hello world")
print("你好，世界")
if False:
    print("True")
else:
    print("false")

import sys

x = "python"
sys.stdout.write(x + "\n")

counter = 1000  # 整形
miles = 100.]]></description><category></category></item><item><title><![CDATA[swift2.0笔记3]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/50705527</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/50705527</guid><author>xupingwei000</author><pubDate>Sat, 20 Feb 2016 17:47:33 +0800</pubDate><description><![CDATA[1. 枚举语法//1.定义一个枚举类型
//2.必须以大写字母开头
//3.case创建新的枚举值
enum SomeEnumeration{
    //代码
}enum CompassPoint{
    case South
    case East
    case North
    case West
}//多个成员值可以出现在同一行上
enum Planet {
    case M]]></description><category></category></item><item><title><![CDATA[swift2.0笔记2]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/50698812</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/50698812</guid><author>xupingwei000</author><pubDate>Fri, 19 Feb 2016 16:17:03 +0800</pubDate><description><![CDATA[函数1.  函数定义func sayHello(personName: String) -> String{
    let greeting = "Hello, "+personName+"!";
    return greeting;
}
函数参数和返回值swift中可以定义任意类型的函数，无参函数
只带一个参数或多个参数
带有表达性参数名
参数是一个函数
func  sayHello(per]]></description><category></category></item><item><title><![CDATA[Swift2.0笔记1]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/50586565</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/50586565</guid><author>xupingwei000</author><pubDate>Tue, 26 Jan 2016 12:58:24 +0800</pubDate><description><![CDATA[Swift基本语法元组：把多个值组合成一个复合值。元组内的值可以是任意类型，并不要求是相同类型。可选类型：（optionals）来处理值可能缺失的情况。可选类型表示： 
    1）有值，等于x 
    2）没有值（nil）var userDefinedColorName: String?    //可选类型隐式解析可选类型当可选类型被第一次赋值之后就可以确定之后一直有值的时候；var myBut]]></description><category></category></item><item><title><![CDATA[xcode 7.2 运行模拟器，Unable to the boot Simulator]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/50507703</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/50507703</guid><author>xupingwei000</author><pubDate>Wed, 13 Jan 2016 00:35:58 +0800</pubDate><description><![CDATA[解决xCode Unable to the boot Simulator网上说的好几种方法都试过
证书冲突
Reset Content and Settings
重新安装xCode,重启Mac
但是 对于我来说都没有用最后在stackoverflow上寻找答案，尝试提供的各种方法，最后终于让我找到了一种可以解决问题的办法。在Terminal中输入以下命令sudo mkdir /private/tmp]]></description><category></category></item><item><title><![CDATA[sourceTree最新版本下载]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/49834565</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/49834565</guid><author>xupingwei000</author><pubDate>Sat, 14 Nov 2015 11:33:27 +0800</pubDate><description><![CDATA[下载地址： http://pan.baidu.com/s/1pJMS3Q7]]></description><category></category></item><item><title><![CDATA[Android的通知栏点击后无反应解决办法]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/46574785</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/46574785</guid><author>xupingwei000</author><pubDate>Sat, 20 Jun 2015 18:08:34 +0800</pubDate><description><![CDATA[1.在开发Android的通知栏时，点击通知栏后，无法跳转到相应的界面
在被启动的Activity配置里加 
android:exported="true"






详细参考请
    http://blog.youkuaiyun.com/asia273360657/article/details/45889351]]></description><category></category></item><item><title><![CDATA[Android SDK(版本2.3-5.1)，搭建完好的eclipse+Android开发环境]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/46503819</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/46503819</guid><author>xupingwei000</author><pubDate>Mon, 15 Jun 2015 14:56:34 +0800</pubDate><description><![CDATA[1.下载地址
http://pan.baidu.com/s/1pJPzDyV]]></description><category></category></item><item><title><![CDATA[Java中如何循环输出对象的属性和值]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/46416181</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/46416181</guid><author>xupingwei000</author><pubDate>Mon, 08 Jun 2015 18:22:52 +0800</pubDate><description><![CDATA[1.用反射实现


Field[] fields = userDetails.getClass().getDeclaredFields();
if (null == fields) {
    return;
}
for (Field s : fields) {
    String name = s.getName();//获取属性名
    String type = s.getGene]]></description><category></category></item><item><title><![CDATA[xUtils在开发过程中DbUtils的使用（save,update方法）]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/46415865</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/46415865</guid><author>xupingwei000</author><pubDate>Mon, 08 Jun 2015 17:53:23 +0800</pubDate><description><![CDATA[1.DbUtils中的save的用法
1）根据官网save的方法很好用，
  
  
dbUtils.save(userDetails);


userDetails：实体类的对象---------------直接调用save方法进行保存，很容易不再啰嗦
2.DbUtils中的update的用法
2）update用法在调用dbUtils.update(...)时，有时会出现NOT]]></description><category></category></item><item><title><![CDATA[RecyclerView上拉加载更多数据]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/46007505</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/46007505</guid><author>xupingwei000</author><pubDate>Tue, 26 May 2015 14:22:14 +0800</pubDate><description><![CDATA[mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {

    int[] lastVisibleItem;
    int lastItem;

    @Override

    public void onScrollStateChanged(RecyclerView recyclerView, in]]></description><category></category></item><item><title><![CDATA[Android中获取手机联系人的优化]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/45748065</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/45748065</guid><author>xupingwei000</author><pubDate>Fri, 15 May 2015 18:14:24 +0800</pubDate><description><![CDATA[1.优化方案

Map temp = new HashMap();

String[] phoneNumberProjection = new String[]{
        ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
        ContactsContract.CommonDataKinds.Phone.NUMBER,
  ]]></description><category></category></item><item><title><![CDATA[xUtils中关于数据库的升级办法]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/45671351</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/45671351</guid><author>xupingwei000</author><pubDate>Tue, 12 May 2015 16:31:38 +0800</pubDate><description><![CDATA[1.修改数据库版本（dbVersion）
    修改dbversion，在onUpgrade里面创建新表   



    private DbUpgradeListener dbUpgradeListener; //升级监听事件




2.创建数据库时需要注意





DbUtils.create(context, MyApplication.DBNAME]]></description><category></category></item><item><title><![CDATA[用RecyclerView进行瀑布流的开发所需的工程依赖]]></title><link>https://blog.youkuaiyun.com/xupingwei000/article/details/45598901</link><guid>https://blog.youkuaiyun.com/xupingwei000/article/details/45598901</guid><author>xupingwei000</author><pubDate>Sat, 09 May 2015 09:33:47 +0800</pubDate><description><![CDATA[1.appcompat依赖包




2.present依赖工程包


3.项目依赖




4.注意在Manifest.xml中必须要添加一下Theme主题

   以 Theme.AppCompat   开头的主题]]></description><category></category></item></channel></rss>