<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chenlin1989</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chenlin1989]]></copyright><item><title><![CDATA[Emoji表情符号录入MySQL数据库报错的解决方案]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/80839840</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/80839840</guid><author>chenlin1989</author><pubDate>Thu, 28 Jun 2018 10:49:34 +0800</pubDate><description><![CDATA[java MySQL插入Emoji表情符号数据，会出现 Incorrect string value: ‘\xF0\x9F\x92\x8BTi…’错误

 
 Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F...' for 
 
产生原因分析： 
普通的字符串或者表情都是占位3个...]]></description><category></category></item><item><title><![CDATA[小程序 目录]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/80118834</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/80118834</guid><author>chenlin1989</author><pubDate>Sat, 28 Apr 2018 11:52:34 +0800</pubDate><description><![CDATA[·bindtap]]></description><category></category></item><item><title><![CDATA[Android 动画基础]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/79004217</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/79004217</guid><author>chenlin1989</author><pubDate>Tue, 09 Jan 2018 09:26:31 +0800</pubDate><description><![CDATA[一 传统 View 动画(Tween/Frame)

1.1 Tween 动画

主要有 4 中：缩放、平移、渐变、旋转



文件位置: res/anim/filename.xml
编译资源的数据类型：an Animation
资源引用：
Java: R.anim.filename
XML: @[package:]anim/filename
  
    <set xm]]></description><category></category></item><item><title><![CDATA[Glide 源码分析]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/79005044</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/79005044</guid><author>chenlin1989</author><pubDate>Tue, 09 Jan 2018 09:25:20 +0800</pubDate><description><![CDATA[###1. 功能介绍
图片加载框架，相对于UniversalImageLoader，Picasso，它还支持video，Gif，SVG格式，支持缩略图请求，旨在打造更好的列表图片滑动体验。Glide有生命周期的概念（主要是对请求进行pause，resume，clear），而且其生命周期与Activity/Fragment的生命周期绑定，支持Volley，OkHttp，并提供了相应的integra]]></description><category></category></item><item><title><![CDATA[EventBus 源码解析]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/79004153</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/79004153</guid><author>chenlin1989</author><pubDate>Mon, 08 Jan 2018 16:14:17 +0800</pubDate><description><![CDATA[1. 功能介绍

1.1 EventBus

EventBus 是一个 Android 事件发布/订阅框架，通过解耦发布者和订阅者简化 Android 事件传递，这里的事件可以理解为消息，本文中统一称为事件。事件传递既可用于 Android 四大组件间通讯，也可以用户异步线程和主线程间通讯等等。
传统的事件传递方式包括：Handler、BroadCastReceiver、Interfac]]></description><category></category></item><item><title><![CDATA[Java 动态代理]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/79004085</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/79004085</guid><author>chenlin1989</author><pubDate>Mon, 08 Jan 2018 16:11:45 +0800</pubDate><description><![CDATA[1. 相关概念

1.1 代理

在某些情况下，我们不希望或是不能直接访问对象 A，而是通过访问一个中介对象 B，由 B 去访问 A 达成目的，这种方式我们就称为代理。
这里对象 A 所属类我们称为委托类，也称为被代理类，对象 B 所属类称为代理类。
代理优点有：

隐藏委托类的实现解耦，不改变委托类代码情况下做一些额外处理，比如添加初始判断及其他公共操作

根据程序运行前代理]]></description><category></category></item><item><title><![CDATA[依赖注入]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/79004051</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/79004051</guid><author>chenlin1989</author><pubDate>Mon, 08 Jan 2018 16:07:06 +0800</pubDate><description><![CDATA[1. 依赖

如果在 Class A 中，有 Class B 的实例，则称 Class A 对 Class B 有一个依赖。例如下面类 Human 中用到一个 Father 对象，我们就说类 Human 对类 Father 有一个依赖。
public class Human {
    ...
    Father father;
    ...
    public Human() {
 ]]></description><category></category></item><item><title><![CDATA[Android View 绘制流程]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/79003935</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/79003935</guid><author>chenlin1989</author><pubDate>Mon, 08 Jan 2018 15:59:46 +0800</pubDate><description><![CDATA[View 绘制机制

1. View 树的绘图流程

当 Activity 接收到焦点的时候，它会被请求绘制布局,该请求由 Android framework 处理.绘制是从根节点开始，对布局树进行 measure 和 draw。整个 View 树的绘图流程在ViewRoot.java类的performTraversals()函数展开，该函数所做
 的工作可简单概况为是否需要重新计算视图]]></description><category></category></item><item><title><![CDATA[Android View 事件传递]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/79003865</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/79003865</guid><author>chenlin1989</author><pubDate>Mon, 08 Jan 2018 15:56:16 +0800</pubDate><description><![CDATA[1、基础知识

(1) 所有 Touch 事件都被封装成了 MotionEvent 对象，包括 Touch 的位置、时间、历史记录以及第几个手指(多指触摸)等。

(2) 事件类型分为 ACTION_DOWN, ACTION_UP, ACTION_MOVE, ACTION_POINTER_DOWN, ACTION_POINTER_UP, ACTION_CANCEL，每个事件都是以 ACTI]]></description><category></category></item><item><title><![CDATA[Java 反射 Reflection]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/79003799</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/79003799</guid><author>chenlin1989</author><pubDate>Mon, 08 Jan 2018 15:51:37 +0800</pubDate><description><![CDATA[1. 了解 Java 中的反射

1.1 什么是 Java 的反射

Java 反射是可以让我们在运行时获取类的函数、属性、父类、接口等 Class 内部信息的机制。通过反射还可以让我们在运行期实例化对象，调用方法，通过调用 get/set 方法获取变量的值，即使方法或属性是私有的的也可以通过反射的形式调用，这种“看透 class”的能力被称为内省，这种能力在框架开发中尤为重要。 有些情况]]></description><category></category></item><item><title><![CDATA[Volley 源码解析]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/79003699</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/79003699</guid><author>chenlin1989</author><pubDate>Mon, 08 Jan 2018 15:43:41 +0800</pubDate><description><![CDATA[1. 功能介绍

1.1. Volley

Volley 是 Google 推出的 Android 异步网络请求框架和图片加载框架。在 Google I/O 2013 大会上发布。

名字由来：a burst or emission of many things or a large amount at once
发布演讲时候的配图



从名字由来和配图中无数急促的火箭可以]]></description><category></category></item><item><title><![CDATA[Java 注解 Annotation]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/79003401</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/79003401</guid><author>chenlin1989</author><pubDate>Mon, 08 Jan 2018 15:25:21 +0800</pubDate><description><![CDATA[不少开源库都用到了注解的方式来简化代码提高开发效率。
本文简单介绍下 Annotation 示例、概念及作用、分类、自定义、解析，并对几个 Android 开源库 Annotation 原理进行简析。

1. Annotation 示例

Override Annotation
@Override
public void onCreate(Bundle savedInstanceSta]]></description><category></category></item><item><title><![CDATA[Android Data Binding 框架]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/79002383</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/79002383</guid><author>chenlin1989</author><pubDate>Mon, 08 Jan 2018 14:39:35 +0800</pubDate><description><![CDATA[来源 https://github.com/LyndonChin/MasteringAndroidDataBinding




本教程是跟着 Data Binding Guide 学习过程中得出的一些实践经验，同时修改了官方教程的一些错误，每一个知识点都有对应的源码，争取做到实践与理论相结合。

Data Binding 解决了 Android UI 编程中的一个痛点，官方原生支持]]></description><category></category></item><item><title><![CDATA[Android 序列化 Serializable 和 Parcelable]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/78999528</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/78999528</guid><author>chenlin1989</author><pubDate>Mon, 08 Jan 2018 09:38:28 +0800</pubDate><description><![CDATA[什么是序列化





序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间，对象将其当前状态写入到临时或持久性存储区。以后，可以通过从存储区中读取或反序列化对象的状态，重新创建该对象。

二进制序列化保持类型保真度，这对于在应用程序的不同调用之间保留对象的状态很有用。例如，通过将对象序列化到剪贴板，可在不同的应用程序之间共享对象。您]]></description><category></category></item><item><title><![CDATA[Android UI层的三种框架模式-MVC、MVP、MVVM]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/78997690</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/78997690</guid><author>chenlin1989</author><pubDate>Sun, 07 Jan 2018 21:18:32 +0800</pubDate><description><![CDATA[MVC


MVC全名是Model View Controller，是模型(model)－视图(view)－控制器(controller)的缩写。


调用关系






数据关系

View 接受用户交互请求View 将请求转交给ControllerController 操作Model进行数据更新数据更新之后，Model通知View更新数据变化View 更新变化数]]></description><category></category></item><item><title><![CDATA[Android 设计模式 之 代理模式]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/78994532</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/78994532</guid><author>chenlin1989</author><pubDate>Sun, 07 Jan 2018 14:12:01 +0800</pubDate><description><![CDATA[代理模式介绍

代理模式（Proxy Pattern）也称为委托模式，是结构型设计模式的一种，代理模式在各类开发中运用的相当广泛，不论是j2ee，android还是ios，都能看到它的身影，所以说设计模式无处不在。

代理模式的定义：

为其他对象提供一种代理以控制这个对象的访问。通俗一点：找别人做你想做但是做不了的事情。

代理模式的UML类图，如图：



角色介绍：]]></description><category></category></item><item><title><![CDATA[Android 设计模式 之 观察者模式]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/78994508</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/78994508</guid><author>chenlin1989</author><pubDate>Sun, 07 Jan 2018 14:08:42 +0800</pubDate><description><![CDATA[观察者模式介绍

观察者模式是一个使用率非常高的模式，它最常用的地方就是GUI系统、订阅–发布系统。因为这个模式的一个重要作用就是解耦，将观察者和被观察者解耦，使得它们之间的依赖性更小，甚至做到毫无依赖。

观察者模式的定义：定义对象间一种一对多的依赖关系，使得每当一个对象改变状态时，则所有依赖于它的对象都会得到通知并且自动更新。

观察者模式的UML类图，如图



角色介绍]]></description><category></category></item><item><title><![CDATA[Android 设计模式 之 建造者模式]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/78994147</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/78994147</guid><author>chenlin1989</author><pubDate>Sun, 07 Jan 2018 13:03:19 +0800</pubDate><description><![CDATA[一 Builder模式介绍及使用场景

Builder模式是一步一步创建一个复杂对象的创建者模式，它允许用户在不知道内部构建细节的情况下，可以更精细地控制对象的构造流程。该模式是为了将复杂对象的过程和它的部件解耦，使得构建过程和部件的表示隔离开来。

因为一个复杂的对象有很多大量组成部分，如汽车，有车轮、方向盘、发动机，还有各种小零件，如何将这件部件装配成一辆汽车，这个装配过程很漫长，也很]]></description><category></category></item><item><title><![CDATA[Android 设计模式 之 单例模式]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/78994107</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/78994107</guid><author>chenlin1989</author><pubDate>Sun, 07 Jan 2018 12:50:30 +0800</pubDate><description><![CDATA[一 单例模式介绍及它的使用场景

单例模式是应用最广的模式，也是我最先知道的一种设计模式，在深入了解单例模式之前，每当遇到如：getInstance（）这样的创建实例的代码时，我都会把它当做一种单例模式的实现。其实经常使用的图片加载框架ImageLoader的实例创建就是使用了单例模式，因为这个ImageLoader中含有线程池、缓存系统、网络请求，很消耗资源，不应该创建多个对象，这时候就需要]]></description><category></category></item><item><title><![CDATA[Android 文章目录]]></title><link>https://blog.youkuaiyun.com/chenlin1989/article/details/78992303</link><guid>https://blog.youkuaiyun.com/chenlin1989/article/details/78992303</guid><author>chenlin1989</author><pubDate>Sat, 06 Jan 2018 22:59:54 +0800</pubDate><description><![CDATA[基础：

Activity 生命周期两三事Activity 启动模式序列化 Serializable 和 ParcelableView 事件传递View 绘制流程动画基础





设计模式：




单例模式建造者模式观察者模式代理模式





进阶：




解决65535限制






优化：




Android]]></description><category></category></item></channel></rss>